请编写一个Java程序实现如下图所示的“文本文件阅读器”窗体(TextFileViewer): 窗体的主要区域是一个JTextArea对象,放置在一个JScrollPane中。窗体底部由三个组件构成,分别是标签、文本框(设置为只读,即不可编辑)和一个按钮。 请注意各个组件的布局关系并合理使用布局管理器。
时间: 2024-03-25 09:36:17 浏览: 51
好的,这是一个简单的Java程序,实现了上述要求:
```java
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class TextFileViewer extends JFrame implements ActionListener {
private JTextArea textArea;
private JTextField fileField;
private JButton openButton;
public TextFileViewer() {
super("文本文件阅读器");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(600, 400));
textArea = new JTextArea(20, 40);
JScrollPane scrollPane = new JScrollPane(textArea);
JLabel fileLabel = new JLabel("文件名:");
fileField = new JTextField(20);
fileField.setEditable(false);
openButton = new JButton("打开");
openButton.addActionListener(this);
JPanel panel = new JPanel();
panel.add(fileLabel);
panel.add(fileField);
panel.add(openButton);
Container contentPane = getContentPane();
contentPane.add(scrollPane, BorderLayout.CENTER);
contentPane.add(panel, BorderLayout.SOUTH);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == openButton) {
JFileChooser fc = new JFileChooser();
int result = fc.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
fileField.setText(file.getName());
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
textArea.setText("");
String line;
while ((line = reader.readLine()) != null) {
textArea.append(line + "\n");
}
reader.close();
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "无法打开文件!", "错误", JOptionPane.ERROR_MESSAGE);
}
}
}
}
public static void main(String[] args) {
new TextFileViewer();
}
}
```
我们先来分析一下这个程序的代码实现:
1. 创建一个继承自JFrame类的窗口类TextFileViewer,实现ActionListener接口。
2. 定义三个成员变量:一个JTextArea对象,一个JTextField对象,一个JButton对象。
3. 在TextFileViewer类的构造函数中:
a. 调用JFrame的构造函数,设置窗口标题和关闭操作。
b. 设置窗口的首选大小为600x400。
c. 创建一个JTextArea对象,并将其放置到一个JScrollPane中。
d. 创建一个标签(JLabel)、一个文本框(JTextField)和一个按钮(JButton),并将它们添加到一个JPanel中。
e. 将JScrollPane和JPanel分别添加到窗口的中心区域和南侧区域。
f. 调用pack()方法,使窗口适应内部组件的大小。
g. 调用setVisible()方法,显示窗口。
4. 实现ActionListener接口中的actionPerformed(ActionEvent e)方法,当用户点击“打开”按钮时,打开一个文件选择对话框,读取用户选择的文件并在文本区域中显示文件内容。
5. 在main()方法中创建一个TextFileViewer对象。
这个程序的界面比较简单,主要由一个JScrollPane和一个JPanel构成。其中JScrollPane用于显示文本内容,JPanel用于放置标签、文本框和按钮。用户可以通过点击“打开”按钮来选择要打开的文件,程序将读取文件内容并显示在文本区域中。
注意:这个程序只是一个简单的示例,没有做太多的错误处理和异常处理。实际应用中,需要对各种异常情况进行适当的处理。
阅读全文