变量变化未被识别

时间:2012-10-15 19:16:40

标签: java variables

我对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方法来识别这个变量吗?

1 个答案:

答案 0 :(得分:4)

我认为你有一个逻辑错误。

您说if(frame1.Visible)然后frame1.show()。但是frame1已经可见了!它看起来并不像你隐藏它。

我的猜测是你的意图而不是:

    if (frame1.Visible == true) {
        frame1.hide();
        frame2.show();
    }

另外,作为旁注,您不必将== true== false与布尔值一起使用。它们将在条件中自动评估为它们所代表的任何值。