117.info
人生若只如初见

java怎么编写记事本程序

要编写一个简单的记事本程序,你可以使用Java GUI库(如Swing或JavaFX)来创建用户界面,并使用Java文件IO操作来读取和写入文本文件。

下面是一个使用Swing库来创建一个简单记事本程序的例子:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Notepad extends JFrame {

    private JTextArea textArea;
    private JFileChooser fileChooser;

    public Notepad() {
        super("记事本");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(800, 600);

        textArea = new JTextArea();
        JScrollPane scrollPane = new JScrollPane(textArea);
        add(scrollPane, BorderLayout.CENTER);

        fileChooser = new JFileChooser();

        JMenuBar menuBar = new JMenuBar();
        JMenu fileMenu = new JMenu("文件");
        JMenuItem newMenuItem = new JMenuItem("新建");
        JMenuItem openMenuItem = new JMenuItem("打开");
        JMenuItem saveMenuItem = new JMenuItem("保存");
        JMenuItem exitMenuItem = new JMenuItem("退出");

        newMenuItem.addActionListener(new NewActionListener());
        openMenuItem.addActionListener(new OpenActionListener());
        saveMenuItem.addActionListener(new SaveActionListener());
        exitMenuItem.addActionListener(new ExitActionListener());

        fileMenu.add(newMenuItem);
        fileMenu.add(openMenuItem);
        fileMenu.add(saveMenuItem);
        fileMenu.add(exitMenuItem);

        menuBar.add(fileMenu);
        setJMenuBar(menuBar);
    }

    private class NewActionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            textArea.setText("");
        }
    }

    private class OpenActionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            int returnVal = fileChooser.showOpenDialog(Notepad.this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fileChooser.getSelectedFile();
                try {
                    BufferedReader reader = new BufferedReader(new FileReader(file));
                    StringBuilder sb = new StringBuilder();
                    String line;
                    while ((line = reader.readLine()) != null) {
                        sb.append(line).append("\n");
                    }
                    reader.close();
                    textArea.setText(sb.toString());
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }

    private class SaveActionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            int returnVal = fileChooser.showSaveDialog(Notepad.this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fileChooser.getSelectedFile();
                try {
                    BufferedWriter writer = new BufferedWriter(new FileWriter(file));
                    writer.write(textArea.getText());
                    writer.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }

    private class ExitActionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            Notepad notepad = new Notepad();
            notepad.setVisible(true);
        });
    }
}

这个记事本程序使用JFrame作为程序窗口,并在窗口中添加了一个JTextArea来显示文本内容。通过菜单栏提供了新建、打开、保存和退出等功能。用户可以通过菜单栏的打开和保存选项来选择文件进行读写操作。

以上代码只是一个简单的记事本示例,你可以根据自己的需求添加更多的功能和样式。

未经允许不得转载 » 本文链接:https://www.117.info/ask/feb89AzsLAgZXDVY.html

推荐文章

  • java中异常类会影响性能吗

    在Java中,异常类本身不会对性能产生显著影响。异常处理机制是为了在程序运行时处理错误或异常情况,而不是为了优化性能。然而,在使用异常时,需要注意以下几点...

  • java中异常类如何避免

    在Java中,避免异常的最好方法是编写健壮的代码并遵循一些最佳实践。以下是一些建议: 预期和处理异常:使用try-catch语句来捕获和处理可能发生的异常。确保处理...

  • java中异常类有哪些常见类型

    Java中的异常类主要分为两大类:受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions)。以下是具体的异常类型:
    受检异常(Checked Except...

  • java中异常类怎么捕获

    在Java中,我们使用try-catch语句来捕获异常。当程序执行过程中遇到异常时,Java运行时系统会抛出一个异常对象。你可以使用try块来包含可能引发异常的代码,然后...

  • Java touppercase方法怎么使用

    Java中的toUpperCase()方法用于将字符串中的所有字母转换为大写形式。使用方法如下: 使用String类的toUpperCase()方法:该方法只能用于String类型的对象。

  • ​win11发生卸载错误怎么解决

    如果您在安装或卸载Windows 11时遇到错误,可以尝试以下解决方法: 重新启动计算机:有时候只需简单地重新启动计算机即可解决问题。 检查系统要求:确保计算机满...

  • win7网络连接图标是空白怎么解决

    当Windows 7的网络连接图标显示为空白时,可能有几种解决方法: 重新启动网络适配器:打开控制面板,选择“网络和共享中心”,点击“更改适配器设置”,右键单击...

  • Python如何打开shell窗口

    Python提供了多种方法打开shell窗口,以下是其中两种常用的方法: 使用os模块中的system函数 import os # 打开shell窗口
    os.system('cmd') # Windows系统