对象不会在另一个类的事件中显示在JTable中

时间:2019-07-14 01:54:33

标签: java swing jframe

对于Java中的事件,我有点一无所知,因此我正在研究一个项目来纠正这一问题。因此,我正在从事一个基本上是比萨店POS程序的项目。有一个主GUI,带有预配置的“进餐”选项。我单击它们,它们的价格和名称将正确显示在JTable中。但是,当我尝试使用其他类中的按钮执行此操作时,没有错误,也没有进入JTable的条目。

我正在使用NetBeans GUI Builder。

这是我目前用于MainGUI类的内容:

public class MainGUI extends javax.swing.JFrame {

   public void getItems(String extName, double extPrice) {
        itemName = extName; //instance variables
        itemPrice = extPrice;
        getTotal(itemPrice); //displays the total sum of items in textfield
        orderTab.setValueAt(itemName, arrayCount, 0); //JTable.
        orderTab.setValueAt(itemPrice, arrayCount, 1);
        arrayCount++; //so next items clicked can displayed on next row
    }
}

和其他班级

public class BuildPizzaGUI extends javax.swing.JFrame {

   private void addButtonClick(java.awt.event.ActionEvent evt) {                                
        MainGUI exporter = new MainGUI();
        exporter.getItems(custName, custPrice);
        setVisible(false); //closes window
   }
}

我没有收到任何错误消息。我希望显示商品名称和价格,但是目前,除了关闭的窗口外,我什么也没得到。谢谢。

1 个答案:

答案 0 :(得分:0)

MainGUI exporter = new MainGUI();

每次单击按钮时,您将无法继续创建MainGUI的新实例。如果这样做,则意味着您尝试添加的每个项目都会创建一个新的JFrame。

相反,在创建BuildPizzaGUI时,您需要传递对现有MainGUI类的引用。然后,当您单击按钮时,您将引用此变量,该变量将允许您更新该类中的JTable。