1

我对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 内的按钮执行相同操作时,这有效,AKA:[if] 部分,但 else 不执行。

我可以做些什么来让 Main 方法来识别这个变量的变化吗?

4

1 回答 1

4

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

你说if(frame1.Visible)frame1.show()。但frame1已经是可见的了!看起来你从来没有隐藏它。

我的猜测是你的意图是:

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

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

于 2012-10-15T19:18:57.773 回答