0

私は次のことを達成しようとしています:ログインウィンドウを表示し、工場からGUIclassインスタンス ( admin/ dev/ tester) を開くものを決定します。

2 番目のウィンドウをポップアップさせることができません。dispose を試してみましたが、プログラムは閉じますが、メインは最後まで実行されません。

主要:

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);
            }
        }
    }

ログインGui:

btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                int res;
                String nick = textUser.getText();
                String pass = textPassword.getText();
                if((res = uc.handleLogin(nick, pass)) > 0){
                    loggingResult = res;
                    uc.handleUi(res);
                    frame.setVisible(false);
                    frame.dispose();
                }
                else{
                    JOptionPane.showMessageDialog(frame,
                        "Wrong username or password.",
                        "Logging error",
                        JOptionPane.PLAIN_MESSAGE);
                }
            }
        });
4

2 に答える 2

2

ウィンドウを表示しているとき、それはブロッキング呼び出しではありません。表示する前に setModal(true) を試してください

于 2013-04-23T14:41:51.040 に答える