此代码检查用户名和密码,然后在正确的情况下打开新的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);
}
}
}
答案 0 :(得分:0)
您没有显示如何将监听器添加到按钮上,但是大概您有这样的东西:
login.addActionListener(new loginAC());
此行是否在代码中多次出现?还是这条线可能运行不止一次?如果是这样,将在登录按钮上添加一个以上的侦听器,这意味着单击登录按钮时将调度多个ActionEvent
;如果用户名和密码都正确,则会导致打开多个新窗口。