Вы можете использовать логические переменные, чтобы определить, разрешено ли открывать кадр.
пример:
//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();
Теперь второй кадр закрыт, и теперь его можно будет открыть еще раз.