Как я могу проверить, что кадр открыт или нет в Java? - PullRequest
1 голос
/ 08 января 2012

Я могу открыть форму или другую форму при нажатии кнопки в NetBeans.такой как следующий код

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

но я хочу контролировать, является ли текущая форма открытой или закрытой?если текущая форма открыта, то когда я нажимаю ту же кнопку, не открывать текущую форму снова, пока она не закроется той же самой форме.как я могу это сделать?Есть некоторые методы, такие как isclosed (), isDisplayable (), но я не знаю, как я могу их использовать?пожалуйста, дайте мне совет.

1 Ответ

3 голосов
/ 08 января 2012

Вы можете использовать логические переменные, чтобы определить, разрешено ли открывать кадр.

пример:

//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_ имеет значение true.

Теперь, когда вы закрываете второй кадр, вы делаете это:

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

Теперь второй кадр закрыт, и теперь его можно будет открыть еще раз.

...