我尝试实现以下目标:显示登录窗口,然后从工厂确定要打开的GUIclass
例如admin
/ dev
/ {{1} })。
我无法设法弹出第二个窗口;我尝试使用dispose关闭程序但不运行main到最后。
主要
tester
LoginGui:
public static void main(String[] args){
LoginGui loginGuiWindow = null;
DeveloperGui devGui = null;
TesterGui tesGui = null;
UserCntrl uc = new UserCntrl();
try {
loginGuiWindow = new LoginGui(uc);
} catch (Exception e) {
e.printStackTrace();
}
System.out.print("Checking instance of: ");
if(loginGuiWindow.loggingResult > 0){
System.out.print("Checking instance of: ");
if (uc.user instanceof Developer) {
System.out.println("is instanceOf developer");
devGui = new DeveloperGui(uc);
}
if (uc.user instanceof Tester ) {
System.out.println("is instanceOf tester");
tesGui = new TesterGui(uc);
}
}
}
答案 0 :(得分:2)
当您显示一个窗口时,它不是阻塞调用,请在显示之前尝试setModal(true)
答案 1 :(得分:1)
确保LoginGui的对话框是模态的。
如果不是,控件将在显示后返回原始方法。 loggingResult永远不会> 0,所以“检查实例”永远不会运行。然后,当用户最终登录时,该代码已经运行,没有任何反应。
使对话框模态基本上会在打开对话框的行上“暂停”。当对话框关闭时,控制将从那里恢复,这就是你想要的(在这种情况下)