关闭子框架的问题[Java / Netbeans]

时间:2018-01-05 21:51:08

标签: java swing netbeans jframe

我一直在Netbeans中使用JButton在Java中打开一个子JFrame。 我希望原始父框架不要处置,但要在子框架后面禁用。因此,执行按钮操作(打开子框架)的代码是:

this.setEnabled(false);
new Child().setVisible(true);

好的,一切都很好。我的意思是子框架打开了,但问题是当我试图关闭它时。我希望子帧不可见(未禁用),但要再次启用原始父帧。我已经将默认关闭操作设置为DO_NOTHING_ON_CLOSE,我尝试使用它:

this.dispose();
Parent.setEnabled(true);

然而,这显然不起作用。我已经读过我需要在主类中进行一些操作,或者我应该使用对话框而不是另一个子框架,但我不熟悉它们。您能否建议哪种解决方案对我在Netbeans中的工作更有效,并提供一些指导原则?

1 个答案:

答案 0 :(得分:0)

有一些不同的解决方案,但我用这个

  1. 将参数添加到子约束器
  2. 在创建新实例
  3. 时获取Parent to Child类

    儿童班

    public class Child extends javax.swing.JFrame {
    
        JFrame parent;
        public Child(JFrame parent) {
            initComponents(); 
            this.parent = parent;
        }
    
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            dispose();
            parent.setEnabled(true);
        }
    

    父类按钮

    private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) {                                         
        this.setEnabled(false);
        new Child(this).setVisible(true);
    }