简易记事本java swing
时间: 2023-07-30 22:10:46 浏览: 99
好的,我可以为您提供一个简易记事本的Java Swing实现的代码框架,您可以根据您的需求进行修改和扩展。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class SimpleNotepad extends JFrame implements ActionListener {
private JTextArea textArea = new JTextArea();
private JFileChooser fileChooser = new JFileChooser();
public SimpleNotepad() {
setTitle("Simple Notepad");
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenuItem newMenuItem = new JMenuItem("New");
JMenuItem openMenuItem = new JMenuItem("Open");
JMenuItem saveMenuItem = new JMenuItem("Save");
JMenuItem exitMenuItem = new JMenuItem("Exit");
newMenuItem.addActionListener(this);
openMenuItem.addActionListener(this);
saveMenuItem.addActionListener(this);
exitMenuItem.addActionListener(this);
fileMenu.add(newMenuItem);
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.addSeparator();
fileMenu.add(exitMenuItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
JScrollPane scrollPane = new JScrollPane(textArea);
getContentPane().add(scrollPane);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
switch (command) {
case "New":
textArea.setText("");
break;
case "Open":
int returnVal = fileChooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
StringBuffer sb = new StringBuffer();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
textArea.setText(sb.toString());
} catch (IOException ex) {
ex.printStackTrace();
}
}
break;
case "Save":
returnVal = fileChooser.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
writer.write(textArea.getText());
} catch (IOException ex) {
ex.printStackTrace();
}
}
break;
case "Exit":
System.exit(0);
break;
}
}
public static void main(String[] args) {
new SimpleNotepad();
}
}
```
这个实现只是一个简单的框架,只提供了基本的打开、保存和新建功能。您可以自由地添加更多的功能,例如剪切、复制、粘贴、查找和替换等。
阅读全文