用Java图形用户界面设计一个表格,三个按钮分别为生成,打开,保存,点击生成表哥可以生成Fibonacci 数列,点击保存可以把表格中的数据保存到文件中,点击打开可以把文件中的数据依次放在表格里
时间: 2024-02-25 07:55:45 浏览: 76
如何用java应用程序创建表格
5星 · 资源好评率100%
好的,这是一个基本的Java GUI应用程序,可以使用Java Swing库来实现。以下是一个简单的示例代码,可以实现您的要求:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
public class FibonacciTable extends JFrame implements ActionListener {
private JButton generateButton;
private JButton saveButton;
private JButton openButton;
private JTable table;
public FibonacciTable() {
super("Fibonacci Table");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 初始化表格
table = new JTable();
table.setModel(new DefaultTableModel(new Object[]{"Fibonacci"}, 0));
// 初始化按钮
generateButton = new JButton("Generate");
generateButton.addActionListener(this);
saveButton = new JButton("Save");
saveButton.addActionListener(this);
openButton = new JButton("Open");
openButton.addActionListener(this);
// 初始化界面布局
JPanel buttonPanel = new JPanel(new GridLayout(1, 3));
buttonPanel.add(generateButton);
buttonPanel.add(saveButton);
buttonPanel.add(openButton);
setLayout(new BorderLayout());
add(buttonPanel, BorderLayout.NORTH);
add(new JScrollPane(table), BorderLayout.CENTER);
setSize(400, 300);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == generateButton) { // 点击生成按钮
generateFibonacci();
} else if (e.getSource() == saveButton) { // 点击保存按钮
saveTable();
} else if (e.getSource() == openButton) { // 点击打开按钮
openTable();
}
}
// 生成Fibonacci数列并显示在表格中
private void generateFibonacci() {
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setRowCount(0); // 清空表格
int a = 0, b = 1, c;
int n = Integer.parseInt(JOptionPane.showInputDialog(this, "Input the length of Fibonacci sequence:"));
for (int i = 0; i < n; i++) {
model.addRow(new Object[]{a});
c = a + b;
a = b;
b = c;
}
}
// 把表格数据保存到文件中
private void saveTable() {
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileChooser.getSelectedFile()))) {
DefaultTableModel model = (DefaultTableModel) table.getModel();
for (int i = 0; i < model.getRowCount(); i++) {
writer.write(model.getValueAt(i, 0).toString());
writer.newLine();
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "Failed to save table data: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
}
// 把文件中的数据添加到表格中
private void openTable() {
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
try (BufferedReader reader = new BufferedReader(new FileReader(fileChooser.getSelectedFile()))) {
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setRowCount(0); // 清空表格
String line;
while ((line = reader.readLine()) != null) {
model.addRow(new Object[]{line});
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "Failed to open table data: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
}
public static void main(String[] args) {
new FibonacciTable();
}
}
```
这个应用程序包括一个JTable来显示Fibonacci数列和三个按钮来执行生成、保存和打开操作。当用户单击“生成”按钮时,程序将弹出一个对话框来要求输入Fibonacci数列的长度,然后生成该数列并显示在表格中。当用户单击“保存”按钮时,程序将弹出一个文件选择对话框,用户可以选择保存文件的位置和名称。当用户单击“打开”按钮时,程序将弹出一个文件选择对话框,用户可以选择要打开的文件,程序将读取文件中的数据并将其添加到表格中。
阅读全文