如何在java中检查框架是否打开?

时间:2012-01-08 12:36:02

标签: java forms swing netbeans panel

我可以在netbeans中单击按钮时打开表单或其他表单。 例如以下代码

private void button1ActionPerformed(java.awt.event.ActionEvent evt) {                                               
    frame1 fr = new frame1();
    desktop.add(fr);
    fr.setVisible(true);}

但我想控制当前形式是开放还是关闭?如果当前表单是打开的,那么当我单击相同的按钮时,不会再次打开当前表单,直到它关闭相同的表单。我该怎么做?有一些方法,如isclosed(),isDisplayable(),但我不知道如何使用这些?请给我建议。

1 个答案:

答案 0 :(得分:3)

您可以使用布尔变量来确定是否允许打开框架。

示例:

//declaring the boolean in a class in which both frames can access
public final class Allow {
    private Allow(){}
    public static Boolean allow_ = true;
}

在您打开辅助框架的主框架代码中,您可以执行此操作

if(Allow.allow_ == true) {
    Allow.allow_ = false;
    secondFrame sFrame_ = new secondFrame();
    sFrame_.setVisible(true);
} else {
    //alert the user that the frame is already open
    //I recommend a JOptionPane such as this
    JOptionPane.showMessageDialog(null, "This window is already open");
}

所以现在第二帧是打开的,现在它只会让你打开它,如果allow_为真。

现在当你关闭第二帧时,你会这样做:

Allow.allow_ = true;
secondFrame.this.setVisible(false);
secondFrame.this.dispose();

现在第二帧已关闭,现在可以再次打开。