21xrx.com
2025-07-09 08:08:24 Wednesday
文章检索 我的文章 写文章
Java实现简易记事本:代码案例
2023-06-15 13:07:45 深夜i     15     0
Java 简易记事本 JFrame

在日常工作和学习中,我们经常需要写一些笔记和备忘录,而记事本通常是最为常用的工具。简单易用的记事本大大提高了我们的效率。那么今天我们就来学习一下如何使用Java编写一个简单的记事本。

实现过程:

1. 创建一个Java项目,新建一个窗体类(JFrame)。

public class MainFrame extends JFrame{
  public MainFrame(){
    setTitle("Java简易记事本");//设置标题
    setSize(500,500);//设置窗体大小
    setLocationRelativeTo(null);//设置窗体居中
    setDefaultCloseOperation(EXIT_ON_CLOSE);//设置关闭事件
    setVisible(true);//设置可见性
  }
  public static void main(String[] args) {
    new MainFrame();
  }
}

运行程序,可以看到一个简单的窗体,标题为“Java简易记事本”,大小为500x500。

2. 在窗体上添加一个文本框(JTextArea),实现记事本的基本功能。

public class MainFrame extends JFrame{
  private JTextArea textArea;//文本框
  public MainFrame(){
    setTitle("Java简易记事本");
    setSize(500,500);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    //添加文本框
    textArea = new JTextArea();
    getContentPane().add(textArea,BorderLayout.CENTER);
    setVisible(true);
  }
  public static void main(String[] args) {
    new MainFrame();
  }
}

运行程序,可以看到一个带有文本框的窗体,可以在文本框中输入文字。

3. 在窗体上添加菜单栏(JMenuBar)、菜单(JMenu)和菜单项(JMenuItem),实现记事本的文件功能。

public class MainFrame extends JFrame{
  private JTextArea textArea;
  public MainFrame(){
    setTitle("Java简易记事本");
    setSize(500,500);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    //添加菜单栏
    JMenuBar menuBar = new JMenuBar();
    setJMenuBar(menuBar);
    //添加菜单
    JMenu fileMenu = new JMenu("文件");
    menuBar.add(fileMenu);
    //添加菜单项
    JMenuItem newMenuItem = new JMenuItem("新建");
    JMenuItem openMenuItem = new JMenuItem("打开");
    JMenuItem saveMenuItem = new JMenuItem("保存");
    JMenuItem exitMenuItem = new JMenuItem("退出");
    fileMenu.add(newMenuItem);
    fileMenu.add(openMenuItem);
    fileMenu.add(saveMenuItem);
    fileMenu.addSeparator();
    fileMenu.add(exitMenuItem);
    //添加文本框
    textArea = new JTextArea();
    getContentPane().add(textArea,BorderLayout.CENTER);
    setVisible(true);
  }
  public static void main(String[] args) {
    new MainFrame();
  }
}

运行程序,可以看到一个带有文件菜单的窗体。点击文件菜单可以看到“新建”、“打开”、“保存”、“退出”四个菜单项,但是这四个菜单项目前还没有实现功能。

4. 添加事件处理程序,实现菜单项的功能。

public class MainFrame extends JFrame{
  private JTextArea textArea;
  public MainFrame(){
    setTitle("Java简易记事本");
    setSize(500,500);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    //添加菜单栏
    JMenuBar menuBar = new JMenuBar();
    setJMenuBar(menuBar);
    //添加菜单
    JMenu fileMenu = new JMenu("文件");
    menuBar.add(fileMenu);
    //添加菜单项
    JMenuItem newMenuItem = new JMenuItem("新建");
    JMenuItem openMenuItem = new JMenuItem("打开");
    JMenuItem saveMenuItem = new JMenuItem("保存");
    JMenuItem exitMenuItem = new JMenuItem("退出");
    fileMenu.add(newMenuItem);
    fileMenu.add(openMenuItem);
    fileMenu.add(saveMenuItem);
    fileMenu.addSeparator();
    fileMenu.add(exitMenuItem);
    //添加事件处理程序
    newMenuItem.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        textArea.setText("");
      }
    });
    openMenuItem.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        JFileChooser fileChooser = new JFileChooser();
        int i = fileChooser.showOpenDialog(null);
        if(i == JFileChooser.APPROVE_OPTION){
          File file = fileChooser.getSelectedFile();
          try{
            BufferedReader br = new BufferedReader(new FileReader(file));
            String s = "";
            String line = "";
            while((line = br.readLine()) != null){
              s += line + "\n";
            }
            textArea.setText(s);
            br.close();
          }catch(Exception ex){ex.printStackTrace();}
        }
      }
    });
    saveMenuItem.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        JFileChooser fileChooser = new JFileChooser();
        int i = fileChooser.showSaveDialog(null);
        if(i == JFileChooser.APPROVE_OPTION){
          File file = fileChooser.getSelectedFile();
          try{
            BufferedWriter bw = new BufferedWriter(new FileWriter(file));
            bw.write(textArea.getText());
            bw.close();
          }catch(Exception ex){ex.printStackTrace();}
        }
      }
    });
    exitMenuItem.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        System.exit(0);
      }
    });
    //添加文本框
    textArea = new JTextArea();
    getContentPane().add(textArea,BorderLayout.CENTER);
    setVisible(true);
  }
  public static void main(String[] args) {
    new MainFrame();
  }
}

运行程序,点击文件菜单可以看到“新建”、“打开”、“保存”、“退出”四个菜单项已经实现功能。点击“新建”菜单项可以清空文本框,点击“打开”菜单项可以打开文本文件并显示在文本框中,点击“保存”菜单项可以将文本框中的内容保存到文本文件中,点击“退出”菜单项可以退出程序。

至此,我们已经完成了一个简单的记事本的编写,可以在此基础上添加更多的功能。

  
  

评论区