请问,在java swing如何把文本框中获取的数据添加到表格中?类似于下图:
在 Java Swing 中,可以使用表格(JTable)来显示表格数据。要把文本框中获取的数据添加到表格中,步骤如下:
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
public class TableExample {
public static void main(String[] args) {
// 创建窗口
JFrame frame = new JFrame("Table Example");
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
// 创建表格模型
MyTableModel tableModel = new MyTableModel();
// 创建表格
JTable table = new JTable(tableModel);
// 创建滚动面板,并将表格添加进去
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setPreferredSize(new Dimension(375, 250));
// 创建文本框
JTextField textField = new JTextField(20);
// 创建按钮
JButton button = new JButton("Add Data");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 获取文本框中的数据
String text = textField.getText();
// 将数据添加到表格中
tableModel.addData(text);
}
});
// 将滚动面板、文本框、按钮添加到窗口中
frame.add(scrollPane);
frame.add(textField);
frame.add(button);
// 显示窗口
frame.setVisible(true);
}
}
// 定义表格模型
class MyTableModel extends AbstractTableModel {
// 定义表格中的数据
private List<String> data;
// 定义表格中的列名
private String[] columnNames = {"Data"};
public MyTableModel() {
data = new ArrayList<>();
}
// 实现必要的方法
// 返回表格中的行数
public int getRowCount() {
return data.size();
}
// 返回表格中的列数
public int getColumnCount() {
return columnNames.length;
}
// 返回表格中的数据
public Object getValueAt(int rowIndex, int columnIndex) {
return data.get(rowIndex);
}
// 返回表格中的列名
public String getColumnName(int column) {
return columnNames[column];
}
// 添加数据到表格中
public void addData(String value) {
data.add(value);
// 通知表格模型数据已经改变
fireTableDataChanged();
}
}