我的JTable没有更新

时间:2014-11-07 20:20:31

标签: java jtable

我在做什么:

orderPage面板包含:一个按钮,一个JTable(摘要)

myChild面板包含:textFields,用于接受用户的输入。

只需按一下按钮,myChild面板就会打开(不关闭orderPage),并要求用户输入一些内容。我想要做的是,根据用户提供的数据,我的Jtable(摘要)会使用新数据进行更新,但这种情况并未发生。

我的代码:

public class orderPage extends javax.swing.JPanel {
public static JTable summary = new JTable();
public static DefaultTableModel model = (DefaultTableModel) summary.getModel();

/** Creates new form orderPage1 */
    public orderPage() {
        initComponents();
        tableContainer.setViewportView(summary);
    }

    public static void addItem(int itemId,String itemName,int price,int qty,int amt)
    {
        model.addRow(new Object[]{itemId,itemName,price,qty,amt});
    }

通过从子面板调用addRow方法(orderPage),我的JTable没有更新。 难道我做错了什么?任何帮助赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

你快到了。该行正在添加,但该表未反映更改。为了查看您添加的新行,您需要刷新JTable。您可以通过调用fireTableDataChanged()来完成此操作。例如:

public static void addItem(int itemId,String itemName,int price,int qty,int amt)
{
    model.addRow(new Object[]{itemId,itemName,price,qty,amt});

    // now that the new row has been added, refresh the table to reflect this
    model.fireTableDataChanged();
}