打开两个新的JFrame!为什么会这样呢?

时间:2018-10-11 12:58:47

标签: java swing jframe

此代码检查用户名和密码,然后在正确的情况下打开新的JFrame。但是,打开了两个相同的JFrame,我对此一无所知。

public void checkLogin(String x, String y){
        if (x.equals(loginCredentials[0]) && y.equals(loginCredentials[1])){
            dispose();
            task1ExampleSC o2 = new task1ExampleSC();
            o2.setVisible(true);
            o2.setSize(600,650);
            o2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }else{
            System.exit(0);
        }
    }
    private class loginAC implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String usernameText,passwordText;
            if (e.getSource()==login){
                usernameText = username.getText();
                passwordText = password.getText();
                checkLogin(usernameText,passwordText);
            }else if(e.getSource()==cancel){
                System.exit(0);
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

您没有显示如何将监听器添加到按钮上,但是大概您有这样的东西:

login.addActionListener(new loginAC());

此行是否在代码中多次出现?还是这条线可能运行不止一次?如果是这样,将在登录按钮上添加一个以上的侦听器,这意味着单击登录按钮时将调度多个ActionEvent;如果用户名和密码都正确,则会导致打开多个新窗口。