以下のコードを切り取った。
私は Java と NetBeans で働いています。2 つの String 変数dbNameとsuccessfullyConnectedをフィールドとして宣言しました。
successfullyConnectedはdbNameを出力します。
行、JOptionPane.showMessageDialog(null, successfullyConnected ); 「データベースへの接続に成功しました」ではなく、「null への接続に成功しました」と出力します。
パラメータにテキストを直接入力すると、JOptionPane.showMessageDialog(null, "接続に成功しました " + dbName ); 、目的のテキストを印刷します。
私の質問は、フィールドを使用して文字列を格納することがうまくいかないのはなぜですか? dbNameをsuccessfullyConnectedで出力すると null に戻るのに、メソッド呼び出しに直接配置するとそうでないのはなぜですか?
public class ABMain extends JFrame implements ActionListener {
//Field
...
private static String dbName;
private static String successfullyConnected = "Successfully connected to " +dbName;
//Constructor
public ABMain() {
...
}
//Listener
public void actionPerformed (ActionEvent e) {
if (e.getSource() == item1) {
dbName = JOptionPane.showInputDialog(requestDBName);
try {
stmt = ABDerbyConnection.createCon(dbName);
JOptionPane.showMessageDialog(null, successfullyConnected); //echo for debugging
} catch (SQLException ex) {
...
}
...
}
}
public static void main(String[] args) {
new ABMain();
}
}