JAVA语言,生成一个简单文本编辑器,将生成的文本存入文件,如果有打开、存盘、关闭等菜单更佳。GUI界面可以自己灵活设计,同时实现窗体关闭退出功能。
时间: 2024-02-12 19:09:19 浏览: 71
好的,我可以为您提供一些思路和代码范例,您可以根据自己的需求进行修改和完善。
1. 创建一个 Java 项目,并使用 Swing 框架开发 GUI 界面。
2. 在界面上添加一个文本编辑区域和菜单栏,包括“打开”、“保存”、“关闭”等菜单项。
3. 通过 JFileChooser 类实现“打开”和“保存”功能,可以选择文件路径并读取/写入文件内容。
4. 在关闭窗口时,添加监听器实现保存提示和退出程序功能。
下面是一份简单的 Java 代码范例:
```java
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class SimpleTextEditor extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextArea textArea;
private JMenuBar menuBar;
private JMenuItem openMenuItem, saveMenuItem, closeMenuItem;
public SimpleTextEditor() {
super("Simple Text Editor");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600, 400);
// 创建文本编辑区域
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
getContentPane().add(scrollPane, BorderLayout.CENTER);
// 创建菜单栏和菜单项
menuBar = new JMenuBar();
setJMenuBar(menuBar);
openMenuItem = new JMenuItem("Open");
openMenuItem.addActionListener(this);
menuBar.add(openMenuItem);
saveMenuItem = new JMenuItem("Save");
saveMenuItem.addActionListener(this);
menuBar.add(saveMenuItem);
closeMenuItem = new JMenuItem("Close");
closeMenuItem.addActionListener(this);
menuBar.add(closeMenuItem);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == openMenuItem) {
// 打开文件
JFileChooser fileChooser = new JFileChooser();
int returnVal = fileChooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try (FileReader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader)) {
String line;
textArea.setText("");
while ((line = br.readLine()) != null) {
textArea.append(line + "\n");
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "Error while opening file: " + ex.getMessage());
}
}
} else if (e.getSource() == saveMenuItem) {
// 保存文件
JFileChooser fileChooser = new JFileChooser();
int returnVal = fileChooser.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try (FileWriter writer = new FileWriter(file)) {
writer.write(textArea.getText());
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "Error while saving file: " + ex.getMessage());
}
}
} else if (e.getSource() == closeMenuItem) {
// 关闭窗口
int option = JOptionPane.showConfirmDialog(this, "Do you want to save the changes?");
if (option == JOptionPane.YES_OPTION) {
JFileChooser fileChooser = new JFileChooser();
int returnVal = fileChooser.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try (FileWriter writer = new FileWriter(file)) {
writer.write(textArea.getText());
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "Error while saving file: " + ex.getMessage());
}
}
} else if (option == JOptionPane.NO_OPTION) {
dispose();
}
}
}
public static void main(String[] args) {
new SimpleTextEditor();
}
}
```
希望这段代码能对您有所帮助。
阅读全文