为什么Println会影响我的while循环?

时间:2017-12-14 22:13:40

标签: java swing

我差不多5个小时就坚持这个,我找不到任何答案。

以下是您需要的一段代码。

Client.java

public class Client {

    private GUI     _GUI = new GUI();

    public Client() {

    }

    public void Run() throws Exception {

        _GUI.Run();
        System.out.println("before");
        while (_GUI.isOver() == false)
        {
            System.out.println("azerty");
        }
        System.out.println("after");
        _GUI.Stop();
    }
}

GUI.java

public class GUI {

    final static String STARTPANEL      = "startpanel";
    final static String LOBBYPANEL      = "lobbypanel";
    final static String GAMEPANEL       = "gamepanel";
    final static String ENDPANEL        = "endpanel";

    private JFrame      _MainWindow     = new JFrame();
    private CardLayout  _MainLayout     = new CardLayout();
    private JPanel      _MainPanel      = new JPanel(_MainLayout);

    public GUI() {
        InitWindow();
        InitPanelLayout();

    }

    public void Run() {

    }

    public void Stop() {
        _MainWindow.dispose();
    }

    private void InitWindow() {
        _MainWindow.setTitle("Mille Borne");
        _MainWindow.setSize(1020, 920);
        _MainWindow.setResizable(false);
        _MainWindow.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        _MainWindow.setLocationRelativeTo(null);
        _MainWindow.setVisible(true);
    }

    private void InitPanelLayout() {
        _MainWindow.add(_MainPanel);

        //_MainPanel.add(STARTPANEL);
        //_MainPanel.add(LOBBYPANEL);
        //_MainPanel.add(GAMEPANEL);
        //_MainPanel.add(ENDPANEL);
    }

    public boolean isOver() {
        if (_MainWindow.isVisible() == true) {
            return (false);
        }
        return (true);
    }

}

如果我在Client.java中删除此行

System.out.println("azerty");

程序没有退出循环,不显示“after”。

有人可以解释一下发生了什么吗?

感谢您的帮助!

0 个答案:

没有答案