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

📄 mainmenuframe.java~67~

📁 一个使用JAVA编写的系统菜单程序,可以动态生成用户菜单.
💻 JAVA~67~
字号:
/* 引用包说明: * 程序项目打包文件:mainmenu * 引用以下系统包文件: * javax.swing:一套轻量级的组件集,提供新型窗口图形类构件 * java.awt:提供创建用户界面和绘画图片和图像的类构件。 * java.awt.event:提供处理由AWT组件激发的各种不同类型事件的接口和类构件。 * java.io:提供系统通过数据流输入、输出操作的类构件。 *//* 类属性说明: * 程序项目类文件:MainMenuFrame.java *-------------------------------------------------------------------- * 调用以下私有属性(0): * *-------------------------------------------------------------------- * 调用以下无说明符属性(0): * contentPane:程序面板 * borderLayout1:BorderLayout布局管理器1 * jPanel1:JPanel面板 * jTextArea1:用来编辑和显示的文本区 * borderLayout2:BorderLayout布局管理器2 * jMenuBar1:菜单设计器 * jMenu1:File菜单 * jMenuItem1:New菜单 * jMenuItem2:Open菜单 * jMenuItem3:Save菜单 * jMenuItem4:SaveAs菜单 * jMenuItem5:Exit菜单 * jMenu2:Edit菜单 * jMenuItem6:Undo菜单 * jMenuItem7:Cut菜单 * jMenuItem8:Copy菜单 * jMenuItem9:Paste菜单 * jMenu3:Help菜单 * jMenuItem10:About菜单 * jFileChooser1:用来进行文件打开、保存操作的文件选择器 * currentFileName:用来存储当前打开的文件名 * motified:设置修改标记,用来判断文本区的内容是否被修改过 *-------------------------------------------------------------------- * 调用以下保护属性(0): * *-------------------------------------------------------------------- * 调用以下公共属性(0): * *//* 类方法说明: * 程序项目类文件:MainMenuFrame.java *-------------------------------------------------------------------- * 调用以下私有方法(1): * jbInit:组件初始化 *-------------------------------------------------------------------- * 调用以下无说明符方法(1): * openFile:定义打开文件方法 * saveFile:定义保存文件方法 * saveAsFile:定义另保存文件方法 * jMenuItem1_actionPerformed:监听New菜单的单击事件,执行新建文件的操作 * jMenuItem2_actionPerformed:监听Open菜单的单击事件,执行打开文件的操作 * jMenuItem3_actionPerformed:监听Save菜单的单击事件,执行保存文件的操作 * jMenuItem4_actionPerformed:监听SaveAs菜单的单击事件,执行另保存文件的操作 * jMenuItem5_actionPerformed:监听Exit菜单的单击事件,执行选择退出的操作 * jMenuItem7_actionPerformed:监听Cut菜单的单击事件,执行剪切的操作 * jMenuItem8_actionPerformed:监听Copy菜单的单击事件,执行复制的操作 * jMenuItem9_actionPerformed:监听Paste菜单的单击事件,执行粘贴的操作 * jMenuItem10_actionPerformed:监听About菜单的单击事件,执行显示关于信息框的操作 *-------------------------------------------------------------------- * 调用以下保护方法(1): * processWindowEvent:覆写窗口事件使窗口关闭时退出程序 *-------------------------------------------------------------------- * 调用以下公共方法(1): * *//* 类构造器说明: * 程序项目类文件:MainMenuFrame.java *-------------------------------------------------------------------- * 调用以下私有构造器(0): * *-------------------------------------------------------------------- * 调用以下无说明符构造器(0): * *-------------------------------------------------------------------- * 调用以下保护构造器(0): * *-------------------------------------------------------------------- * 调用以下共公构造器(1): * MainMenuFrame:构造MainMenuFrame程序框架类 */package mainmenu;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;/**声明MainMenuFrame程序框架类*/public class MainMenuFrame extends JFrame {  JPanel contentPane;  BorderLayout borderLayout1 = new BorderLayout();  JPanel jPanel1 = new JPanel();  JTextArea jTextArea1 = new JTextArea();  BorderLayout borderLayout2 = new BorderLayout();  JMenuBar jMenuBar1 = new JMenuBar();  JMenu jMenu1 = new JMenu();  JMenuItem jMenuItem1 = new JMenuItem();  JMenuItem jMenuItem2 = new JMenuItem();  JMenuItem jMenuItem3 = new JMenuItem();  JMenuItem jMenuItem4 = new JMenuItem();  JMenuItem jMenuItem5 = new JMenuItem();  JMenu jMenu2 = new JMenu();  JMenuItem jMenuItem6 = new JMenuItem();  JMenuItem jMenuItem7 = new JMenuItem();  JMenuItem jMenuItem8 = new JMenuItem();  JMenuItem jMenuItem9 = new JMenuItem();  JMenu jMenu3 = new JMenu();  JMenuItem jMenuItem10 = new JMenuItem();  JFileChooser jFileChooser1 = new JFileChooser();  String currentFileName = null; /*用来存储当前打开的文件名*/  boolean motified = false; /*设置修改标记,用来判断文本区的内容是否被修改过*/ /**构造MainMenuFrame程序框架类*/  public MainMenuFrame() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  /**组件初始化*/  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();    contentPane.setLayout(borderLayout1); /*设置contentPane的布局管理器*/    this.setJMenuBar(jMenuBar1); /*把jMenuBar类对象jMenuBar1添加到窗口*/    this.setSize(new Dimension(400, 300)); /*设置窗口大小*/    this.setTitle("主菜单"); /*设置窗口标题*/    jPanel1.setLayout(borderLayout2); /*设置jPanel1的布局管理器*/    /*设置菜单对象显示文本,并注册事件监听器*/    jMenu1.setText("File");    jMenuItem1.setText("New");    jMenuItem1.addActionListener(new MainMenuFrame_jMenuItem1_actionAdapter(this));    jMenuItem2.setText("Open");    jMenuItem2.addActionListener(new MainMenuFrame_jMenuItem2_actionAdapter(this));    jMenuItem3.setText("Save");    jMenuItem3.addActionListener(new MainMenuFrame_jMenuItem3_actionAdapter(this));    jMenuItem4.setText("SaveAs");    jMenuItem4.addActionListener(new MainMenuFrame_jMenuItem4_actionAdapter(this));    jMenuItem5.setText("Exit");    jMenuItem5.addActionListener(new MainMenuFrame_jMenuItem5_actionAdapter(this));    jMenu2.setText("Edit");    jMenuItem6.setText("Undo");    jMenuItem7.setText("Cut");    jMenuItem7.addActionListener(new MainMenuFrame_jMenuItem7_actionAdapter(this));    jMenuItem8.setText("Copy");    jMenuItem8.addActionListener(new MainMenuFrame_jMenuItem8_actionAdapter(this));    jMenuItem9.setText("Paste");    jMenuItem9.addActionListener(new MainMenuFrame_jMenuItem9_actionAdapter(this));    jMenu3.setText("Help");    jMenuItem10.setText("About");    jMenuItem10.addActionListener(new MainMenuFrame_jMenuItem10_actionAdapter(this));    contentPane.add(jPanel1,  BorderLayout.CENTER); /*把jPanel类对象jPanel1添加到contentPane上*/    jPanel1.add(jTextArea1,  BorderLayout.CENTER); /*把jTextArea类对象jTextArea1添加到jPanel1上*/    /*把所有的菜单对象添加到jMenuBar类对象jMenuBar1上*/    jMenuBar1.add(jMenu1);    jMenuBar1.add(jMenu2);    jMenuBar1.add(jMenu3);    jMenu1.add(jMenuItem1);    jMenu1.add(jMenuItem2);    jMenu1.add(jMenuItem3);    jMenu1.add(jMenuItem4);    jMenu1.addSeparator();    jMenu1.add(jMenuItem5);    jMenu2.add(jMenuItem6);    jMenu2.addSeparator();    jMenu2.add(jMenuItem7);    jMenu2.add(jMenuItem8);    jMenu2.add(jMenuItem9);    jMenu3.add(jMenuItem10);  }  /**覆写窗口事件使窗口关闭时退出程序*/  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }  /**定义打开文件方法*/  void openFile(String fileName){    try {      File file = new File(fileName); /*指定打开文件*/      int size = (int)file.length(); /*获得文件的大小*/      int chars_read =0; /*设置变量对文件中已被读取的字符计数*/      FileReader in = new FileReader(file); /*从文件中读取数据*/      char[] data = new char[size];      while(in.ready()){        chars_read += in.read(data, chars_read, size - chars_read);      }      in.close();      jTextArea1.setText(new String(data,0,chars_read)); /*将读取出来的数据显示在文本区中*/      this.currentFileName = fileName; /*取得当前打开的文件名*/      this.motified = false; /*将修改标志复位*/    }    catch (IOException e) {      jTextArea1.setText("Error opening"+fileName);    }  }  /**定义保存文件方法*/  boolean saveFile(){    if(currentFileName == null) /*如果当前文件还没有名字则调用saveAsFile方法*/      return saveAsFile();    try{ /*将文本区的文本保存到当前的文件中,如果保存成功返回真并将修改标志复位*/      File file = new File(currentFileName);      FileWriter out = new FileWriter(file);      String text = jTextArea1.getText();      out.write(text);      out.close();      this.motified = false;      return true;    }    catch(IOException e){ /*捕获IO异常*/    }    return false ;  }  /**定义另保存文件方法*/  boolean saveAsFile(){    if(jFileChooser1.APPROVE_OPTION==jFileChooser1.showSaveDialog(this)){ /*打开SaveDialog对话框,检查是否指定了某个文件或输入新文件名来存放需要保存的数据*/      currentFileName = jFileChooser1.getSelectedFile().getPath(); /*将当前的文件名设置为选择的文件名*/      this.repaint();      return saveFile(); /*调用saveFile方法保存数据*/    }    else{ /*如果未能指定文件名来保存数据则返回假*/      this.repaint();      return false;    }  }  /**监听New菜单的单击事件,执行新建文件的操作*/  void jMenuItem1_actionPerformed(ActionEvent e) {    jTextArea1.setText(""); /*设置文本区的内容为空*/  }  /**监听Open菜单的单击事件,执行打开文件的操作*/  void jMenuItem2_actionPerformed(ActionEvent e) {    if(jFileChooser1.APPROVE_OPTION==jFileChooser1.showOpenDialog(this)){ /*打开Open File对话框并检查是否选中了某个文件要求打开*/      openFile(jFileChooser1.getSelectedFile().getPath()); /*调用openFile方法在文本区中显示文本内容*/      this.repaint(); /*更新程序显示*/    }  }  /**监听Save菜单的单击事件,执行保存文件的操作*/  void jMenuItem3_actionPerformed(ActionEvent e) {    saveFile(); /*保存当前文本*/  }  /**监听SaveAs菜单的单击事件,执行另保存文件的操作*/  void jMenuItem4_actionPerformed(ActionEvent e) {    saveAsFile(); /*指定一个文件以保存当前文本*/  }  /**监听Exit菜单的单击事件,执行选择退出的操作*/  void jMenuItem5_actionPerformed(ActionEvent e) {    int n = JOptionPane.showConfirmDialog(contentPane, "确实要退出程序吗?","退出",JOptionPane.YES_NO_OPTION); /*显示退出确认框,并把选择结果赋给int型变量n*/    if(n == JOptionPane.YES_OPTION) { /*如果选择Yes按钮退出程序*/      System.exit(0);    }  }  /**监听Cut菜单的单击事件,执行剪切的操作*/  void jMenuItem7_actionPerformed(ActionEvent e) {    jTextArea1.cut(); /*实现剪切功能*/  }  /**监听Copy菜单的单击事件,执行复制的操作*/  void jMenuItem8_actionPerformed(ActionEvent e) {    jTextArea1.copy(); /*实现复制功能*/  }  /**监听Paste菜单的单击事件,执行粘贴的操作*/  void jMenuItem9_actionPerformed(ActionEvent e) {    jTextArea1.paste(); /*实现粘贴功能*/  }  /**监听About菜单的单击事件,执行显示关于信息框的操作*/  void jMenuItem10_actionPerformed(ActionEvent e) {    JOptionPane.showMessageDialog(contentPane,"Vertion1.0","关于",JOptionPane.INFORMATION_MESSAGE); /*显示关于信息框*/  }}/**注册监听器,监听New菜单的单击事件*/class MainMenuFrame_jMenuItem1_actionAdapter implements java.awt.event.ActionListener {  MainMenuFrame adaptee;  MainMenuFrame_jMenuItem1_actionAdapter(MainMenuFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItem1_actionPerformed(e);  }}/**注册监听器,监听Open菜单的单击事件*/class MainMenuFrame_jMenuItem2_actionAdapter implements java.awt.event.ActionListener {  MainMenuFrame adaptee;  MainMenuFrame_jMenuItem2_actionAdapter(MainMenuFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItem2_actionPerformed(e);  }}/**注册监听器,监听Save菜单的单击事件*/class MainMenuFrame_jMenuItem3_actionAdapter implements java.awt.event.ActionListener {  MainMenuFrame adaptee;  MainMenuFrame_jMenuItem3_actionAdapter(MainMenuFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItem3_actionPerformed(e);  }}/**注册监听器,监听SaveAs菜单的单击事件*/class MainMenuFrame_jMenuItem4_actionAdapter implements java.awt.event.ActionListener {  MainMenuFrame adaptee;  MainMenuFrame_jMenuItem4_actionAdapter(MainMenuFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItem4_actionPerformed(e);  }}/**注册监听器,监听Exit菜单的单击事件*/class MainMenuFrame_jMenuItem5_actionAdapter implements java.awt.event.ActionListener {  MainMenuFrame adaptee;  MainMenuFrame_jMenuItem5_actionAdapter(MainMenuFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItem5_actionPerformed(e);  }}/**注册监听器,监听Cut菜单的单击事件*/class MainMenuFrame_jMenuItem7_actionAdapter implements java.awt.event.ActionListener {  MainMenuFrame adaptee;  MainMenuFrame_jMenuItem7_actionAdapter(MainMenuFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItem7_actionPerformed(e);  }}/**注册监听器,监听Copy菜单的单击事件*/class MainMenuFrame_jMenuItem8_actionAdapter implements java.awt.event.ActionListener {  MainMenuFrame adaptee;  MainMenuFrame_jMenuItem8_actionAdapter(MainMenuFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItem8_actionPerformed(e);  }}/**注册监听器,监听Paste菜单的单击事件*/class MainMenuFrame_jMenuItem9_actionAdapter implements java.awt.event.ActionListener {  MainMenuFrame adaptee;  MainMenuFrame_jMenuItem9_actionAdapter(MainMenuFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItem9_actionPerformed(e);  }}/**注册监听器,监听About菜单的单击事件*/class MainMenuFrame_jMenuItem10_actionAdapter implements java.awt.event.ActionListener {  MainMenuFrame adaptee;  MainMenuFrame_jMenuItem10_actionAdapter(MainMenuFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItem10_actionPerformed(e);  }}

⌨️ 快捷键说明

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