我在做什么:
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没有更新。 难道我做错了什么?任何帮助赞赏。感谢。
答案 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();
}