Java - 将列和数据添加到现有 JTable 中

Alo*_*ark 1 java swing

我有一个小型 java 应用程序,我想在其中放置一些数据,并将其列放在现有的 JTable 中。

这是我的列和数据;

String[][] data; // this object gets it's contents from another function
String[] columns={"Name","Value"}; //these are the columns that should be added to JTable
Run Code Online (Sandbox Code Playgroud)

那么我应该怎么做才能添加和查看“现有”JTable 中的数据?我不想创建动态 JTable。

编辑:

我把它写到了上面填充我的变量的函数中。之后如何刷新我的 JTable?

tblSonuc=new JTable(data,columns);
Run Code Online (Sandbox Code Playgroud)

Pau*_*tha 5

要动态添加行,请使用TableModel. 一个简单的已经实现的是DefaultTableModel. 只需将模型设置为您的JTable

String[] columns = {"Column 1","Column 2"};
DefaultTableModel model = new DefaultTableModel(columns, 0); <-- 0 is number of rows
JTable table = new JTable(model);
Run Code Online (Sandbox Code Playgroud)

只使用addRow模型的方法,它采用 aObject[]或 a Vector。所以你可以这样做

Object[] rowData { data1, data2 };
model.addRow(rowData);
Run Code Online (Sandbox Code Playgroud)

有关更多方法,请参阅如何使用表DefaultTableModel


编辑

“这个字符串数组已经在A类中创建并填充。我只是从A中取出它并放入我在B类中的新变量中”

如果要从类中添加二维数组中的数据,只需循环遍历并将其添加到模型中

A a = new A();
String[][] students = a.getDtudents();

for (String[] row : students) {
    model.addRow(row):
}
Run Code Online (Sandbox Code Playgroud)

编辑 2

如果您使用的是 GUI Builder,JTableDefaultTableModel默认为模型。要设置模型的设置,只需

  1. 在设计视图中选择/突出显示表格
  2. 转到属性面板,然后单击模型属性...右侧的。
  3. 在对话框中,您可以将行数设置为 0 并设置列标题。

现在说你想在一个actionPerformedJust do this 中访问模型

private void actionPerformed(java.awt.event.ActionPerformed e) {
    DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
    model.setRorCount(0);
    A a = new A();
    String[][] students = a.getStudents();
    for (String[] row : students) {
        model.addRow(row);
    }
}
Run Code Online (Sandbox Code Playgroud)