我对Java很陌生,但是遇到了我不明白的问题。我想要一个jbutton显示一个窗口并隐藏另一个窗口。我已经完成了一个无穷循环,可以在按下jbutton时侦听变量更改。
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) { //Jbutton in question
NewJFrame frame = new NewJFrame(); //another JFrame from which I created the public variable(Visible)
frame.Visible = false;
}
while (always == true) { **//code in main method to test variable change**
if (frame1.Visible == true) {
frame1.show();
frame2.hide();
}
else {
frame1.show();
frame2.hide();
}
有趣的是,当我对创建了公共变量(可见)的JFrame中的按钮执行相同操作时,此方法起作用,又称:[if]部分,但else不执行。
我可以做些什么来使Main方法重新识别此变量更改吗?
最佳答案
我认为您有逻辑错误。
您说if(frame1.Visible)
然后说frame1.show()
。但是frame1
已经可见!看起来您从未隐藏过它。
我的猜测是您的意图是:
if (frame1.Visible == true) {
frame1.hide();
frame2.show();
}
另外,作为旁注,您不必将
== true
或== false
与布尔值一起使用。它们将自动以有条件的值作为代表的值进行评估。