📄 handoutframe.java
字号:
/*
* @(#)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 + -