当在netbeans中单击按钮时,我可以打开一个或另一个表单。例如以下代码
private void button1ActionPerformed(java.awt.event.ActionEvent evt) {
frame1 fr = new frame1();
desktop.add(fr);
fr.setVisible(true);}
但我想控制当前表单是打开还是关闭?如果当前表单是打开的,那么当我点击相同的按钮时,不要再打开当前表单,直到它关闭。我该如何制作它?有一些方法,比如isclosed()、isDisplayable(),但我不知道如何使用这些方法?请给我建议。
您可以使用布尔变量来确定是否允许打开框架。
示例:
//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();
现在,第二个框架已关闭,现在将允许再次打开。