⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 handoutframe.java

📁 一个C语言子集的编译器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * @(#)HandoutFrame.java	1.0.0  05/13/2007
 *
 * Copyright 2007 Xuxt@buaa, No.34060520 All rights reserved.
 */
package com.king4solomon.homework.compiler.gui;

import java.awt.*;
import java.awt.event.*;
import java.io.*;

import javax.swing.*;
import javax.swing.filechooser.FileFilter;

import com.king4solomon.homework.compiler.core.*;
import com.king4solomon.homework.compiler.pvm.*;

@SuppressWarnings("serial")
public class HandoutFrame extends JFrame implements ActionListener {

	/**
	 * @param args
	 */
	public HandoutFrame(String title) {
		super(title);
		Image im = Toolkit.getDefaultToolkit().getImage("images/logo.gif");
		setIconImage(im);

		Toolkit kit = Toolkit.getDefaultToolkit();
		Dimension screenSize = kit.getScreenSize();

		setExtendedState(Frame.MAXIMIZED_BOTH);
		setLocation(0, 0);

		setLayout(new BorderLayout());
		setVisible(true);

		JMenuBar bar = new JMenuBar();

		JMenu m1 = new JMenu("File");
		m1.setMnemonic(KeyEvent.VK_F);
		JMenu m2 = new JMenu("Edit");
		m2.setMnemonic(KeyEvent.VK_E);
		JMenu m3 = new JMenu("Compile");
		m3.setMnemonic(KeyEvent.VK_C);
		JMenu m4 = new JMenu("Interpret");
		m4.setMnemonic(KeyEvent.VK_I);
		JMenu m5 = new JMenu("Window");
		m5.setMnemonic(KeyEvent.VK_W);
		JMenu m6 = new JMenu("Help");
		m6.setMnemonic(KeyEvent.VK_H);

		m11 = new JMenuItem("New Blank File", new ImageIcon(
				"images/file_obj.gif"));
		m11.setPreferredSize(new Dimension(220, 25));
		m11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
				ActionEvent.ALT_MASK));
		m11.setMnemonic(KeyEvent.VK_N);

		m12 = new JMenuItem("Open File", new ImageIcon("images/open.gif"));

		m13 = new JMenuItem("Save", new ImageIcon("images/save_edit.gif"));
		m13.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
				ActionEvent.CTRL_MASK));
		m13.setMnemonic(KeyEvent.VK_S);

		m14 = new JMenuItem("Save As...", new ImageIcon(
				"images/saveas_edit.gif"));

		m15 = new JMenuItem("Close", new ImageIcon("images/close.gif"));
		m15.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,
				ActionEvent.CTRL_MASK));
		m15.setMnemonic(KeyEvent.VK_L);

		m16 = new JMenuItem("Exit", new ImageIcon("images/exit.gif"));
		m16.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
				ActionEvent.ALT_MASK));
		m16.setMnemonic(KeyEvent.VK_X);

		m21 = new JMenuItem("Undo Typing",
				new ImageIcon("images/undo_edit.gif"));
		m21.setPreferredSize(new Dimension(220, 25));
		m21.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,
				ActionEvent.ALT_MASK));

		m22 = new JMenuItem("Redo Typing",
				new ImageIcon("images/redo_edit.gif"));
		m22.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,
				ActionEvent.ALT_MASK));
		m22.setMnemonic(KeyEvent.VK_R);

		m23 = new JMenuItem("Cut", new ImageIcon("images/cut_edit.gif"));
		m23.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
				ActionEvent.CTRL_MASK));

		m24 = new JMenuItem("Copy", new ImageIcon("images/copy_edit.gif"));
		m24.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
				ActionEvent.CTRL_MASK));
		m24.setMnemonic(KeyEvent.VK_C);

		m25 = new JMenuItem("Paste", new ImageIcon("images/paste_edit.gif"));
		m25.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
				ActionEvent.CTRL_MASK));

		m26 = new JMenuItem("Select All", new ImageIcon("images/selectall.gif"));
		m26.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
				ActionEvent.CTRL_MASK));
		m26.setMnemonic(KeyEvent.VK_A);

		m27 = new JMenuItem("Delete", new ImageIcon("images/delete.gif"));
		m27.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));
		m27.setMnemonic(KeyEvent.VK_A);

		m31 = new JMenuItem("Compile", new ImageIcon("images/compile_act.gif"));
		m31.setPreferredSize(new Dimension(220, 25));
		m31.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,
				ActionEvent.ALT_MASK));
		m31.setMnemonic(KeyEvent.VK_P);

		m33 = new JMenuItem("Compile And Run");

		m35 = new JMenuItem("Compile As...");
		m35.setEnabled(false);

		m32 = new JMenuItem("Compile Last Lauched");
		m32.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,
				ActionEvent.ALT_MASK));
		m32.setMnemonic(KeyEvent.VK_T);

		m34 = new JMenuItem("Compile By Step", new ImageIcon("images/compilebs.gif"));

		m41 = new JMenuItem("Interpret", new ImageIcon("images/execute.gif"));
		m41.setPreferredSize(new Dimension(220, 25));
		m41.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,
				ActionEvent.ALT_MASK));
		m41.setMnemonic(KeyEvent.VK_I);

		m42 = new JMenuItem("Interpret By Step", new ImageIcon("images/skip_task.gif"));

		m43 = new JMenuItem("Interpret As...");
		m43.setEnabled(false);

		m51 = new JMenu("Open Perspective");
		m51.setIcon(new ImageIcon("images/perspect.gif"));
		m51.setPreferredSize(new Dimension(220, 25));

		m511 = new JRadioButtonMenuItem("Compile", new ImageIcon(
				"images/compile_area.gif"));
		m511.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,
				ActionEvent.SHIFT_MASK));
		m511.setMnemonic(KeyEvent.VK_L);
		m511.setSelected(true);
		m511.setPreferredSize(new Dimension(220, 25));

		m512 = new JRadioButtonMenuItem("Edit", new ImageIcon(
				"images/editor_area.gif"));
		m512.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,
				ActionEvent.SHIFT_MASK));
		m512.setMnemonic(KeyEvent.VK_E);

		m513 = new JRadioButtonMenuItem("Debug", new ImageIcon(
				"images/debug_exc.gif"));
		m513.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,
				ActionEvent.SHIFT_MASK));
		m513.setMnemonic(KeyEvent.VK_D);

		ButtonGroup perspective = new ButtonGroup();
		perspective.add(m511);
		perspective.add(m512);
		perspective.add(m513);

		m52 = new JMenu("View");
		m52.setIcon(new ImageIcon("images/overview.gif"));

		m521 = new JCheckBoxMenuItem("File Tree", new ImageIcon(
				"images/tree.gif"));
		m521.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,
				ActionEvent.SHIFT_MASK));
		m521.setMnemonic(KeyEvent.VK_T);
		m521.setSelected(true);
		m521.setPreferredSize(new Dimension(220, 25));

		m522 = new JCheckBoxMenuItem("Console", new ImageIcon(
				"images/console_area.gif"));
		m522.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
				ActionEvent.SHIFT_MASK));
		m522.setMnemonic(KeyEvent.VK_S);
		m522.setSelected(true);

		m53 = new JMenuItem("Preference");
		m53.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,
				ActionEvent.SHIFT_MASK));
		m53.setMnemonic(KeyEvent.VK_P);

		m61 = new JMenuItem("Help Contents", new ImageIcon(
				"images/help_contents.gif"));
		m61.setPreferredSize(new Dimension(220, 25));
		m61.setMnemonic(KeyEvent.VK_H);

		m62 = new JMenuItem("Search", new ImageIcon("images/search.gif"));
		m62.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,
				ActionEvent.CTRL_MASK));
		m62.setMnemonic(KeyEvent.VK_F);

		m63 = new JMenuItem("About Extended C0 Compiler");
		m63.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,
				ActionEvent.CTRL_MASK));
		m63.setMnemonic(KeyEvent.VK_B);

		tb1 = new JButton(new ImageIcon("images/file_obj.gif"));
		tb1.setToolTipText("New File");

		tb2 = new JButton(new ImageIcon("images/open.gif"));
		tb2.setToolTipText("Open File");

		tb3 = new JButton(new ImageIcon("images/save_edit.gif"));
		tb3.setToolTipText("Save File");

		tb4 = new JButton(new ImageIcon("images/cut_edit.gif"));
		tb4.setToolTipText("Cut");

		tb5 = new JButton(new ImageIcon("images/copy_edit.gif"));
		tb5.setToolTipText("Copy");

		tb6 = new JButton(new ImageIcon("images/paste_edit.gif"));
		tb6.setToolTipText("Paste");

		tb7 = new JButton(new ImageIcon("images/compile_act.gif"));
		tb7.setToolTipText("Compile");

		tb8 = new JButton(new ImageIcon("images/compilebs.gif"));
		tb8.setToolTipText("Compile by step");
		tb8.setEnabled(false);

		tb9 = new JButton(new ImageIcon("images/execute.gif"));
		tb9.setToolTipText("Intepret");
		tb9.setEnabled(false);

		tb10 = new JButton(new ImageIcon("images/skip_task.gif"));
		tb10.setToolTipText("Intepret by step");
		tb10.setEnabled(false);

		tb11 = new JButton(new ImageIcon("images/progress_stop.gif"));
		tb11.setToolTipText("Stop");
		tb11.setEnabled(false);

		m11.addActionListener(this);
		m12.addActionListener(this);
		m13.addActionListener(this);
		m14.addActionListener(this);
		m15.addActionListener(this);
		m16.addActionListener(this);
		m21.addActionListener(this);
		m22.addActionListener(this);
		m23.addActionListener(this);
		m24.addActionListener(this);
		m25.addActionListener(this);
		m26.addActionListener(this);
		m27.addActionListener(this);
		m31.addActionListener(this);
		m32.addActionListener(this);
		m33.addActionListener(this);
		m34.addActionListener(this);
		m35.addActionListener(this);
		m41.addActionListener(this);
		m42.addActionListener(this);
		m43.addActionListener(this);
		m511.addActionListener(this);
		m512.addActionListener(this);
		m513.addActionListener(this);
		m521.addActionListener(this);
		m522.addActionListener(this);
		m53.addActionListener(this);
		m61.addActionListener(this);
		m62.addActionListener(this);
		m63.addActionListener(this);
		tb1.addActionListener(this);
		tb2.addActionListener(this);
		tb3.addActionListener(this);
		tb4.addActionListener(this);
		tb5.addActionListener(this);
		tb6.addActionListener(this);
		tb7.addActionListener(this);
		tb8.addActionListener(this);
		tb9.addActionListener(this);
		tb10.addActionListener(this);
		tb11.addActionListener(this);

		m1.add(m11);
		m1.add(m12);
		m1.addSeparator();
		m1.add(m13);
		m1.add(m14);
		m1.add(m15);
		m1.addSeparator();
		m1.add(m16);
		m2.add(m21);
		m2.add(m22);
		m2.addSeparator();
		m2.add(m23);
		m2.add(m24);
		m2.add(m25);
		m2.addSeparator();
		m2.add(m26);
		m2.add(m27);
		m3.add(m31);
		m3.addSeparator();
		m3.add(m32);
		m3.add(m33);
		m3.add(m34);
		m3.addSeparator();
		m3.add(m35);
		m4.add(m41);
		m4.add(m42);
		m4.addSeparator();
		m4.add(m43);
		m5.add(m51);
		m51.add(m511);
		m51.add(m512);
		m51.add(m513);
		m5.add(m52);
		m52.add(m521);
		m52.add(m522);
		m5.addSeparator();
		m5.add(m53);
		m6.add(m61);
		m6.add(m62);
		m6.addSeparator();
		m6.add(m63);

		bar.add(m1);
		bar.add(m2);
		bar.add(m3);
		bar.add(m4);
		bar.add(m5);
		bar.add(m6);

		setJMenuBar(bar);

		mPane = new JPanel();
		add(mPane);
		mPane.setLayout(new BorderLayout());

		tBar = new JToolBar();
		tBar.setPreferredSize(new Dimension(screenSize.width, 25));
		tBar.setFloatable(false);
		mPane.add(tBar, BorderLayout.NORTH);

		tBar.addSeparator();
		tBar.add(tb1);
		tBar.add(tb2);
		tBar.add(tb3);
		tBar.addSeparator();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -