Java 更新JTable的内容

Java 更新JTable的内容,java,swing,jtable,actionlistener,Java,Swing,Jtable,Actionlistener,我有一个JTable,它显示数据的对象[]。 同一屏幕上还有一个表单,允许用户向列表中的对象添加项目。尽管在我的一生中,当用户按下“添加项目”按钮时,我无法更新表中显示的列表 (它很好地附加到数组中,我可以将它打印到屏幕上,只是无法更改表。) 这是桌子的板条箱 Object[] tableHeadings = {"Item Name","Qty/Weight","Price"}; ShoppingApplication shoppingApplication = new Shop

我有一个JTable,它显示数据的对象[]。 同一屏幕上还有一个表单,允许用户向列表中的对象添加项目。尽管在我的一生中,当用户按下“添加项目”按钮时,我无法更新表中显示的列表

(它很好地附加到数组中,我可以将它打印到屏幕上,只是无法更改表。)

这是桌子的板条箱

    Object[] tableHeadings = {"Item Name","Qty/Weight","Price"};
    ShoppingApplication shoppingApplication = new ShoppingApplication();
    Object[][] tableData = shoppingApplication.generatePurchaseTableData();
    final JTable tblBill = new JTable(tableData, tableHeadings);
以下是正在生成的表数据:

    /**
     * Generates data in the correct format to go into the table 
     * from the purchase list
     * @return 
     */
     public Object[][] generatePurchaseTableData(){ 

     Object[][] results = new Object[listOfPurchases.size()][2];
     for (int i = 0; i<listOfPurchases.size(); i++){
          Purchase purchase = listOfPurchases.get(i);
          Object[] innerObject = 
                   {purchase.getProductName(),
                    purchase.getPricePerUnit(),
                    purchase.getTotalPrice()};
                 results[i] = innerObject;
         }
     System.out.println(results.length);
     return results;
         }
     }
从上面的代码来看,看起来我并没有做太多的努力,但实际上我已经试着让它工作了好几个小时了,试着使用不同的方法、数据结构,但从一开始就找不到方向,这就是上面的代码所描述的

我在谷歌上搜索了一下,似乎找不到任何东西,想不出为什么没有其他人被困在这个问题上。(也许我只是有点糊涂)但希望这篇文章也能帮助其他人


提前感谢:)

JTable
有一个数据模型(
TableModel
),它要么保存值,要么是实际数据的适配器

可以通过更改表格模型中的数据或设置新的表格模型来更新表格中的数据。

在您的例子中,可以使用
javax.swing.table.DefaultTableModel

TableModel tableModel=new DefaultTableModel(newData, tableHeadings);
tblBill.setModel(tableModel);

JTable
有一个数据模型(
TableModel
),它要么保存值,要么是实际数据的适配器

可以通过更改表格模型中的数据或设置新的表格模型来更新表格中的数据。

在您的例子中,可以使用
javax.swing.table.DefaultTableModel

TableModel tableModel=new DefaultTableModel(newData, tableHeadings);
tblBill.setModel(tableModel);

JTable
有一个数据模型(
TableModel
),它要么保存值,要么是实际数据的适配器

可以通过更改表格模型中的数据或设置新的表格模型来更新表格中的数据。

在您的例子中,可以使用
javax.swing.table.DefaultTableModel

TableModel tableModel=new DefaultTableModel(newData, tableHeadings);
tblBill.setModel(tableModel);

JTable
有一个数据模型(
TableModel
),它要么保存值,要么是实际数据的适配器

可以通过更改表格模型中的数据或设置新的表格模型来更新表格中的数据。

在您的例子中,可以使用
javax.swing.table.DefaultTableModel

TableModel tableModel=new DefaultTableModel(newData, tableHeadings);
tblBill.setModel(tableModel);
当用户按下“添加项目”按钮时更新

当您只添加一个项目时,为什么要重新创建整个表?这不是很有效

相反,您必须向表中添加新行。此代码(与上述代码类似)假定您使用的是DefaultTableModel:

DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow(...);
当用户按下“添加项目”按钮时更新

当您只添加一个项目时,为什么要重新创建整个表?这不是很有效

相反,您必须向表中添加新行。此代码(与上述代码类似)假定您使用的是DefaultTableModel:

DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow(...);
当用户按下“添加项目”按钮时更新

当您只添加一个项目时,为什么要重新创建整个表?这不是很有效

相反,您必须向表中添加新行。此代码(与上述代码类似)假定您使用的是DefaultTableModel:

DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow(...);
当用户按下“添加项目”按钮时更新

当您只添加一个项目时,为什么要重新创建整个表?这不是很有效

相反,您必须向表中添加新行。此代码(与上述代码类似)假定您使用的是DefaultTableModel:

DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow(...);

Lissy,为了修改表中的数据,您需要查看如何使用TableModel。核心示例文档如下:,web上还会有更多的示例。Lissy,为了修改表中的数据,您需要查看如何使用TableModel。核心示例文档如下:,web上还会有更多的示例。Lissy,为了修改表中的数据,您需要查看如何使用TableModel。核心示例文档如下:,web上还会有更多的示例。Lissy,为了修改表中的数据,您需要查看如何使用TableModel。核心示例文档在这里:,网上还会有更多的示例。谢谢你的回复,现在效果很好,你说得很清楚。谢谢你的回复,现在效果很好,你说得很清楚。谢谢你的回复,现在效果很好,你说得很清楚。谢谢你的回复,现在效果很好,你说得很清楚。干杯