中指定的新值,因此我創建了一個名爲savedName的變量,然後將其值設置爲動作偵聽器方法中的新值。它將更改的值打印在動作偵聽器中,但僅在動作偵聽器中打印。似乎一旦動作偵聽器發生,變量的值就會變回「null」(默認值)。 username_txt是用戶輸入信息的文本字段。但正如我所說的那樣,只是在動作偵聽器方法中臨時更改該值,並且一旦動作偵聽器發生,它就會變回默認值。我用粗體顯示了savedName的語句。變量的值不會更改爲在actionListener
public class LoginWindow extends javax.swing.JFrame {
/**
* Creates new form LoginWindow
*/
Connection conn = null;
ResultSet rs = null;
PreparedStatement pst = null;
**private String savedName;**
public LoginWindow() {
initComponents();
conn = JavaConnect.ConnecrDb();
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String user_sql = "select * from Users where Username=? and Password=? ";
try{
pst = conn.prepareStatement(user_sql);
pst.setString(1, username_txt.getText());
savedName = username_txt.getText();
System.out.println(savedName);
pst.setString(2, password_txt.getText());
rs = pst.executeQuery();
if(rs.next()){
JOptionPane.showMessageDialog(null, "Wecome!");
rs.close();
pst.close();
this.dispose();
UserMainWindow wind = new UserMainWindow();
wind.setVisible(true);
}
else{
JOptionPane.showMessageDialog(null, "Username and/or Password is not correct");
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}
finally {
try{
rs.close();
pst.close();
}
catch(Exception e){
}
}
}
您的操作偵聽器是一種私有方法。那應該是? – 2014-12-02 06:25:09
你確定你的'jButton2ActionPerformed'方法已被調用嗎? – 2014-12-02 06:25:38
該動作偵聽器是一個登錄按鈕。我在actionListener中做了System.out.println(savedName),它打印出正確的值。我需要另一個類的savedName變量,並且每當我在另一個類中使用savedName時,它總是使用savedName的默認值。該值在actionPerformed方法中暫時更改,但從不保存。 – user3754524 2014-12-02 06:28:46