此代碼檢查用戶名和密碼,如果它們正確則打開一個新的 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 回答

UYOU
TA貢獻1878條經驗 獲得超4個贊
您沒有展示如何將偵聽器添加到按鈕,但大概您有這樣的東西:
login.addActionListener(new loginAC());
此行在您的代碼中出現多次嗎?或者這條線有可能不止一次運行嗎?如果是這樣,登錄按鈕將添加多個偵聽器,這意味著ActionEvent
單擊登錄按鈕時將調度多個偵聽器;如果用戶名和密碼都正確,那將導致不止一個新窗口打開。
添加回答
舉報
0/150
提交
取消