📄 mainframe.java
字号:
package compiler.Frame;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JToolBar;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import java.awt.Font;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.*;
import java.awt.Dimension;
import java.awt.Insets;
import java.io.IOException;
import javax.swing.JOptionPane;
import javax.swing.JFileChooser;
import java.io.FileReader;
import java.io.File;
import javax.swing.JTextArea;
import javax.swing.text.Document;
import javax.swing.JSplitPane;
import javax.swing.JScrollPane;
import javax.swing.event.DocumentListener;
import javax.swing.event.DocumentEvent;
import java.awt.BorderLayout;
import java.io.FileWriter;
import javax.swing.JDesktopPane;
import javax.swing.JInternalFrame;
import compiler.pl0.PL0;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class MainFrame
extends JFrame implements DocumentListener {
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenuItem jMenuFileExit = new JMenuItem();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
JToolBar jToolBar = new JToolBar();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
ImageIcon open = new ImageIcon(MainFrame.class.getResource(
"/compiler/img/open.png"));
ImageIcon exit = new ImageIcon(MainFrame.class.getResource(
"/compiler/img/exit.png"));
ImageIcon about = new ImageIcon(MainFrame.class.getResource(
"/compiler/img/about.png"));
ImageIcon newf = new ImageIcon(MainFrame.class.getResource(
"/compiler/img/new.png"));
ImageIcon save = new ImageIcon(MainFrame.class.getResource(
"/compiler/img/save.png"));
ImageIcon analyse = new ImageIcon(MainFrame.class.getResource(
"/compiler/img/analyse.png"));
JMenuItem jMenuItem1 = new JMenuItem();
JMenuItem jMenuItem2 = new JMenuItem();
JMenuItem jMenuItem3 = new JMenuItem();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JButton jButton5 = new JButton();
JMenu jMenu1 = new JMenu();
JMenuItem jMenuItem4 = new JMenuItem();
File sourFile;
JTextArea inTextArea;
public JTextArea outTextArea;
File objFile;
Document indocument;
private boolean edited;
BorderLayout borderLayout3 = new BorderLayout();
JScrollPane inScrollPane;
JScrollPane outScrollPane;
JSplitPane jSplitPane1;
MainFrame mf;
public MainFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout3);
setSize(new Dimension(515, 358));
setTitle("小型编译器");
inScrollPane = new JScrollPane();
outScrollPane = new JScrollPane();
jMenuFile.setFont(new java.awt.Font("Batang", Font.BOLD, 11));
jMenuFile.setText("File");
jMenuFileExit.setFont(new java.awt.Font("Tahoma", Font.BOLD, 12));
jMenuFileExit.setIcon(exit);
jMenuFileExit.setText("Exit");
jMenuFileExit.addActionListener(new
MainFrame_jMenuFileExit_ActionAdapter(this));
jMenuHelp.setFont(new java.awt.Font("Batang", Font.BOLD, 11));
jMenuHelp.setText("Help");
jMenuHelpAbout.setFont(new java.awt.Font("Tahoma", Font.BOLD, 12));
jMenuHelpAbout.setIcon(about);
jMenuHelpAbout.setText("About");
jMenuHelpAbout.addActionListener(new
MainFrame_jMenuHelpAbout_ActionAdapter(this));
jMenuBar1.setFont(new java.awt.Font("Arial", Font.PLAIN, 14));
jMenuItem1.setFont(new java.awt.Font("Tahoma", Font.BOLD, 12));
jMenuItem1.setIcon(newf);
jMenuItem1.setText("new");
jMenuItem1.addActionListener(new MainFrame_jMenuItem1_actionAdapter(this));
jMenuItem2.setFont(new java.awt.Font("Tahoma", Font.BOLD, 12));
jMenuItem2.setIcon(open);
jMenuItem2.setText("open");
jMenuItem2.addActionListener(new MainFrame_jMenuItem2_actionAdapter(this));
jMenuItem3.setFont(new java.awt.Font("Tahoma", Font.BOLD, 12));
jMenuItem3.setIcon(save);
jMenuItem3.setText("save");
jMenuItem3.addActionListener(new MainFrame_jMenuItem3_actionAdapter(this));
jButton3.setToolTipText("Save File alt + S");
jButton3.setIcon(save);
jButton3.setMnemonic('S');
jButton3.addActionListener(new MainFrame_jButton3_actionAdapter(this));
jButton5.setToolTipText("Exit alt + E");
jButton5.setIcon(exit);
jButton5.setMnemonic('E');
jButton5.addActionListener(new MainFrame_jButton5_actionAdapter(this));
jButton1.setMaximumSize(new Dimension(35, 35));
jButton1.setMinimumSize(new Dimension(35, 35));
jButton1.setMargin(new Insets(2, 14, 2, 25));
jButton1.setMnemonic('N');
jButton1.addActionListener(new MainFrame_jButton1_actionAdapter(this));
jButton2.setMnemonic('O');
jButton2.addActionListener(new MainFrame_jButton2_actionAdapter(this));
jButton4.setToolTipText("Analyse Program alt + A");
jButton4.setIcon(analyse);
jButton4.setMnemonic('A');
jButton4.addActionListener(new MainFrame_jButton4_actionAdapter(this));
jMenu1.setFont(new java.awt.Font("Batang", Font.BOLD, 11));
jMenu1.setText("Analyse");
jMenuItem4.setFont(new java.awt.Font("Tahoma", Font.BOLD, 12));
jMenuItem4.setIcon(analyse);
jMenuItem4.setText("Analyse");
jMenuItem4.addActionListener(new MainFrame_jMenuItem4_actionAdapter(this));
// jTextArea3.setBackground(SystemColor.window);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenu1);
jMenuBar1.add(jMenuHelp);
jMenuHelp.add(jMenuHelpAbout);
setJMenuBar(jMenuBar1);
jButton1.setIcon(newf);
jButton1.setToolTipText("New File alt + N");
jButton2.setIcon(open);
jButton2.setToolTipText("Open File alt + O");
jToolBar.add(jButton1);
jToolBar.add(jButton2);
jToolBar.add(jButton3);
jToolBar.add(jButton4);
jToolBar.add(jButton5);
jMenuFile.add(jMenuItem1);
jMenuFile.add(jMenuItem2);
jMenuFile.add(jMenuItem3);
jMenuFile.addSeparator();
jMenuFile.add(jMenuFileExit);
jMenu1.add(jMenuItem4);
inTextArea = new JTextArea();
inTextArea.setEditable(true);
outTextArea = new JTextArea();
outTextArea.setEditable(false);
inScrollPane.getViewport().add(inTextArea);
outScrollPane.getViewport().add(outTextArea);
jSplitPane1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
jSplitPane1.setOneTouchExpandable(true);
contentPane.add(jToolBar, java.awt.BorderLayout.NORTH);
contentPane.add(jSplitPane1, java.awt.BorderLayout.CENTER);
jSplitPane1.setLeftComponent(inScrollPane);
jSplitPane1.setRightComponent(outScrollPane);
jSplitPane1.setDividerLocation(400);
}
/**
* File | Exit action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuFileExit_actionPerformed(ActionEvent actionEvent) {
System.exit(0);
}
/**
* Help | About action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuHelpAbout_actionPerformed(ActionEvent actionEvent) {
MainFrame_AboutBox dlg = new MainFrame_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.setVisible(true);
}
//OPEN
public void jMenuItem2_actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(this);
if (returnVal == 0) {
sourFile = fc.getSelectedFile();
try {
inTextArea.read(new FileReader(sourFile), null);
setTitle( (new StringBuilder(
"\u5C0F\u7F16\u8BD1\u5668 - ")).append(sourFile.
getName()).toString());
inTextArea.setEditable(true);
edited = false;
indocument = inTextArea.getDocument();
indocument.addDocumentListener(this);
outTextArea.setText("");
}
catch (IOException ioe) {
JOptionPane.showMessageDialog(this,
"Can not open this file!", "Error", 0);
}
}
}
public void insertUpdate(DocumentEvent e) {
}
public void removeUpdate(DocumentEvent e) {
}
public void changedUpdate(DocumentEvent e) {
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -