阅读量:0
要编写一个简单的记事本程序,你可以使用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来显示文本内容。通过菜单栏提供了新建、打开、保存和退出等功能。用户可以通过菜单栏的打开和保存选项来选择文件进行读写操作。
以上代码只是一个简单的记事本示例,你可以根据自己的需求添加更多的功能和样式。