Java实现1.编程实现如下图功能,具体要求: (1)建立菜单 (2)“打开”功能:显示选择文件对话框,供用户选择文件。 (3)“保存”功能:将多行文本框中数据保存为原文件,如原文件不存在要求用户选择保存文件的路径和文件名。 (4)“另存为”功能:将当前多行文本框中数据用另一个文件名保存。 (5)“退出”功能:退出当前程序。
时间: 2023-10-07 22:10:22 浏览: 114
以下是Java实现代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class MainFrame extends JFrame implements ActionListener {
private JMenuBar menuBar;
private JMenu fileMenu;
private JMenuItem openItem, saveItem, saveAsItem, exitItem;
private JTextArea textArea;
private JFileChooser fileChooser;
private File currentFile;
public MainFrame() {
setTitle("文本编辑器");
setSize(500, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menuBar = new JMenuBar();
fileMenu = new JMenu("文件");
openItem = new JMenuItem("打开");
openItem.addActionListener(this);
saveItem = new JMenuItem("保存");
saveItem.addActionListener(this);
saveAsItem = new JMenuItem("另存为");
saveAsItem.addActionListener(this);
exitItem = new JMenuItem("退出");
exitItem.addActionListener(this);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(saveAsItem);
fileMenu.addSeparator();
fileMenu.add(exitItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
add(scrollPane);
fileChooser = new JFileChooser();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == openItem) {
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
currentFile = fileChooser.getSelectedFile();
try {
BufferedReader reader = new BufferedReader(new FileReader(currentFile));
String line;
while ((line = reader.readLine()) != null) {
textArea.append(line + "\n");
}
reader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
} else if (e.getSource() == saveItem) {
if (currentFile == null) {
int result = fileChooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
currentFile = fileChooser.getSelectedFile();
}
}
if (currentFile != null) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(currentFile));
writer.write(textArea.getText());
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
} else if (e.getSource() == saveAsItem) {
int result = fileChooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
currentFile = fileChooser.getSelectedFile();
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(currentFile));
writer.write(textArea.getText());
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
} else if (e.getSource() == exitItem) {
System.exit(0);
}
}
public static void main(String[] args) {
new MainFrame();
}
}
```
这个程序创建了一个简单的文本编辑器。菜单栏包含“文件”菜单和“退出”菜单项。多行文本框用于显示和编辑文本。当用户单击“打开”菜单项时,程序将显示一个文件对话框,允许用户选择要打开的文件。当用户单击“保存”菜单项时,程序将尝试将文本保存到当前文件中,如果当前文件不存在,则将显示一个文件对话框,允许用户选择一个保存位置和文件名。当用户单击“另存为”菜单项时,程序将显示一个文件对话框,允许用户选择一个保存位置和文件名,并将文本保存到该位置。当用户单击“退出”菜单项时,程序将退出。
阅读全文