21xrx.com
2024-12-22 23:42:16 Sunday
登录
文章检索 我的文章 写文章
Java实现简单记事本的完整代码
2023-06-16 13:26:42 深夜i     --     --
Java 记事本 文件IO

今天,我们将介绍如何使用Java编写一个简单的记事本应用程序。通过这个例子,您将了解如何处理文件输入输出、GUI、事件处理器和其他重要的Java功能。

代码实现过程:

1.创建一个名为SimpleNotepad的Java应用程序。

2.创建一个带有文本区域的GUI界面,用于用户输入和输出。

3.为文本区域添加一个菜单栏,包括“打开”、“保存”、“另存为”和“退出”选项。

4.为每个菜单选项添加事件处理程序,在用户按下这些选项时执行相应的操作。

5.在打开和保存文件时使用Java的文件输入输出流操作。

6.使用Java的窗口管理器来创建GUI界面。

实现代码如下:

import java.awt.BorderLayout;

import java.awt.EventQueue;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

public class SimpleNotepad extends JFrame {

  /**

   *

   */

  private static final long serialVersionUID = 1L;

  private JTextArea textArea;

  public static void main(String[] args) {

    EventQueue.invokeLater(new Runnable() {

      public void run() {

        try {

          SimpleNotepad frame = new SimpleNotepad();

          frame.setVisible(true);

        } catch (Exception e) {

          e.printStackTrace();

        }

      }

    });

  }

  public SimpleNotepad() {

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setBounds(100, 100, 450, 300);

    JMenuBar menuBar = new JMenuBar();

    setJMenuBar(menuBar);

    JMenu mnNewMenu = new JMenu("文件");

    menuBar.add(mnNewMenu);

    JMenuItem mntmNewMenuItem = new JMenuItem("打开");

    mntmNewMenuItem.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent e) {

        openFile();

      }

    });

    mnNewMenu.add(mntmNewMenuItem);

    JMenuItem mntmNewMenuItem_1 = new JMenuItem("保存");

    mntmNewMenuItem_1.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent e) {

        saveFile();

      }

    });

    mnNewMenu.add(mntmNewMenuItem_1);

    JMenuItem mntmNewMenuItem_2 = new JMenuItem("另存为");

    mntmNewMenuItem_2.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent e) {

        saveFileAs();

      }

    });

    mnNewMenu.add(mntmNewMenuItem_2);

    JMenuItem mntmNewMenuItem_3 = new JMenuItem("退出");

    mntmNewMenuItem_3.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent e) {

        System.exit(0);

      }

    });

    mnNewMenu.add(mntmNewMenuItem_3);

    JScrollPane scrollPane = new JScrollPane();

    getContentPane().add(scrollPane, BorderLayout.CENTER);

    textArea = new JTextArea();

    scrollPane.setViewportView(textArea);

  }

  private void openFile() {

    File file = new File("test.txt");

    if (!file.exists())

      return;

    BufferedReader reader = null;

    try {

      reader = new BufferedReader(new FileReader(file));

      StringBuilder sb = new StringBuilder();

      String line = null;

      while ((line = reader.readLine()) != null) {

        sb.append(line + "\n");

      }

      textArea.setText(sb.toString());

    } catch (IOException e) {

      e.printStackTrace();

    } finally {

      if (reader != null) {

        try {

          reader.close();

        } catch (IOException e) {

          e.printStackTrace();

        }

      }

    }

  }

  private void saveFile() {

    File file = new File("test.txt");

    BufferedWriter writer = null;

    try {

      writer = new BufferedWriter(new FileWriter(file));

      writer.write(textArea.getText());

    } catch (IOException e) {

      e.printStackTrace();

    } finally {

      if (writer != null) {

        try {

          writer.close();

        } catch (IOException e) {

          e.printStackTrace();

        }

      }

    }

  }

  private void saveFileAs()

    // TODO Auto-generated method stub

}

  
  

评论区

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