在java swing如何把文本框中获取的数据添加到表格中?

请问,在java swing如何把文本框中获取的数据添加到表格中?类似于下图:

img

  • 文本框数据还是照常去取, 把表格 原来的数据 + 文本框取出来的数据, 重新初始化表格数据,就像你一开始 初始化表格那样,再调用一遍。

在 Java Swing 中,可以使用表格(JTable)来显示表格数据。要把文本框中获取的数据添加到表格中,步骤如下:

  • 定义一个表格模型(TableModel),并实现必要的方法。
  • 创建一个表格(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();
    }
}