如何在java swing中重定向到另一个窗口?

时间:2014-02-20 09:18:14

标签: java swing

我的应用程序中有一个登录页面,如果用户输入登录详细信息并单击按钮,窗口应该消失并移动到另一个窗口如何在java swing中执行此操作我尝试创建框架并将其设置为false但是它不起作用?

3 个答案:

答案 0 :(得分:2)

你应该这样做

if("credentials are correct"){
    this.dispose();
    // call new frame that contains the page to 
    //be displayed after logging in successfully
}

dispose()方法将关闭当前帧(this)。

答案 1 :(得分:0)

我建议你有一个StartUp课程,它将登录称为JDialog,如:

public class StartUp {

    public static void main(String args[]) {
        //1- showLoginDialog
        //2- if pass, then dispose the login dialog by calling JDialog.dispose() method
        //3- show main JFrame by calling JFrame.setVisibe(true) method
    }
}

答案 2 :(得分:0)

我在这种情况下使用的一个解决方案是首先创建父框架(登录后将显示的框架)并将其设置为不可见。然后,您可以启动登录窗口。您必须向此框架添加一个侦听器,以便在作为登录成功结果关闭时,可以使父框架可见。

 public static void main(String[] args) {
    final JFrame parentFrame = new JFrame("Main window");
    parentFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //add content to the main frame
    parentFrame.setVisible(false);

    final JFrame loginFrame = new JFrame("Login window");
    //add content to the login frame
    loginFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    loginFrame.addWindowListener(new WindowAdapter() {
        @Override
        public void windowDeactivated(final WindowEvent e) {
            super.windowDeactivated(e);
            //test if login successful
            parentFrame.setVisible(true);
        }
    });
    loginFrame.setVisible(true);
}