如何从另一个JFrame执行JButton代码

问题描述 投票:0回答:1

我有这个JFrame叫做receipt,我想要的是当用户单击退出按钮(在JFrame的右上方)时,将执行另一个类的JButton

我为关闭JFrame receipt添加了WindowLIstener:

@Override
    public void windowClosing(WindowEvent e) {
        if (JOptionPane.showConfirmDialog(null, "Do you want to have another transaction?", "New Transaction", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
            reciept.this.dispose();

            ---------> // JButton code to be executed from another class

        } else {
            JOptionPane.showMessageDialog(null, "Thank you for shopping with us!");
            System.exit(0);
        }
    }

另一个类的JButton new transaction

 if (e.getSource() == transaction) {
            total = 0;
            cartAmount.setText("Total: ");
            list.clear();
            list2.clear();
            list3.clear();
            model.setRowCount(0);
            model2.setRowCount(0);
            image.setIcon(null);
            iteminfo.setText("");
            itemprice.setText("Price: P ");
            itemstock.setText("Stocks: ");
        }

基本上,JButton new transaction只是重置了类Store,非常感谢您的帮助!

java jbutton actionlistener windowlistener
1个回答
0
投票

这听起来像XY问题,您最好的解决方案是完全尝试另一种方法:

  • 最好是在JFrame中不显示收据,而在modal JDialog中显示。这样,一旦显示此窗口(收据对话框),调用代码便会停止,然后在该对话框不再可见时立即恢复调用代码。
  • 然后,一旦收据不再可见,则可以执行调用代码,其他代码,即所谓的“ JButton代码”。

如果这似乎不能回答您的问题,请考虑为我们充实您的问题和代码,包括在问题中创建并发布有效的minimimal reproducible example程序。

© www.soinside.com 2019 - 2024. All rights reserved.