我差不多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”。
有人可以解释一下发生了什么吗?
感谢您的帮助!