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

📄 mainframe.java

📁 完成编译器的基本功能,并且有界面,简单好用
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -