21xrx.com
2024-11-22 10:06:07 Friday
登录
文章检索 我的文章 写文章
Java实现简易记事本:代码案例
2023-06-15 13:07:45 深夜i     --     --
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();

  }

}

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

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复