我对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();
}
有趣的是,当我使用创建公共变量(Visible)的JFrame中的按钮执行相同操作时,这会起作用,AKA:[if]部分,但是else不会执行。
我能做些什么来让Main方法来识别这个变量吗?
答案 0 :(得分:4)
我认为你有一个逻辑错误。
您说if(frame1.Visible)
然后frame1.show()
。但是frame1
已经可见了!它看起来并不像你隐藏它。
我的猜测是你的意图而不是:
if (frame1.Visible == true) {
frame1.hide();
frame2.show();
}
另外,作为旁注,您不必将== true
或== false
与布尔值一起使用。它们将在条件中自动评估为它们所代表的任何值。