gpt4 book ai didi

java - 关闭在另一个 JFrame 中打开的 JFrame

转载 作者:行者123 更新时间:2023-12-02 04:29:46 25 4
gpt4 key购买 nike

我正在构建一个应用程序,当第一个 JFrame 被禁用时,我需要在另一个 JFrame 中打开一个 JFrame。

问题是当我想关闭第二个 JFrame 时,我需要启用第一个 JFrame。

我尝试了多种方法,但效果不佳,每种方法都无法实现一个目标。我需要实现这两个目标:

  1. 打开第二个 Frame 时禁用第一个 Frame
  2. 在第二个框架关闭时启用它。

这是我的代码的一部分:

    private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {                                          
// TODO add your handling code here:
PaymentJFrame pjf = new PaymentJFrame();
//setEnableValue(false);
//enableFrame();
this.setEnabled(false);
pjf.setVisible(true);
if (!pjf.isActive()){
this.setEnabled(true);
}

}

此代码根本不启用第一帧。我尝试通过在第二个框架关闭时添加 enable 来以另一种方式使用它,但它不起作用:

    //Class in first Frame
private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
PaymentJFrame pjf = new PaymentJFrame();
//setEnableValue(false);
//enableFrame();
this.setEnabled(false);
pjf.setVisible(true);
}
//Class in second Frame
private void formWindowClosed(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
FinancialDocumentsJFrame.setEnableValue(true);
}

有人知道我怎样才能实现这些目标吗?

第一个框架是主框架,第二个框架是一个类,我从中创建框架对象,以便向用户显示和获取更多信息。

我正在使用 netBeans IDE 设计器。

最佳答案

首先,一个 Swing 应用程序 should only have one JFrame ,其他窗口可以是 JDialog 或其他窗口。至于你的问题,请使用此代码作为示例。它使用监听器来检测第二个窗口的关闭事件。以下代码应位于(第一个)JFrame 中(看起来那里有一个按钮)

private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {                                          

JDialog paymentDialog = new JDialog();

MyFirstFrame.this.setEnabled(false);
paymentDialog.setVisible(true);

paymentDialog.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
MyFirstFrame.this.setEnabled(true);
}
});
}

您可以像处理框架一样通过扩展 JDialog 来创建自己的对话框,并在此代码中使用自定义对话框。另外,您可以考虑使用modal JDialog,而不是设置启用或禁用JFrame当对话框处于 Activity 状态时阻止对 JFrame 的操作。

更进一步,还有用于 Swing 窗口的 setAlwaysOnTop(boolean)

关于java - 关闭在另一个 JFrame 中打开的 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31625141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com