0

Java でユーザー名とパスワードを受け取るために実行された jbuttonaction の使用に問題があります。このコードの何が問題なのですか。Google で検索したところ、getPassword の戻り値を格納するために文字配列が使用されていることがわかりました。間違っていますか?

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    char[] input = {'r','o','o','t'};
    if (jTextField1.getText() == "admin" && jPasswordField1.getPassword() == input) {
        srchnm.main(null);

    }

}   
4

1 に答える 1

0

String を比較したり、 を使用して他の参照型を比較したりしないでください==。代わりに Stringsのメソッドを使用してください。equals(...)パスワードには、java.util.Arrays クラスに使用できる equals メソッドがあります。

if (java.util.Arrays.equals(jPasswordField1.getPassword(), input) && 
           "admin".equals(jTextField1.getText())) {
    srchnm.main(null);
}

または、これを変更できます。

"admin".equals(jTextField1.getText())

"admin".equalsIgnoreCase(jTextField1.getText())

私自身 (Hovercraft) は、入力エラーのデバッグを避けるために String 定数を使用するのが好きです。

// at the top
public static final String ADMIN = "admin";

// ....

// a boolean statement in the if block:
ADMIN.equals(jTextField1.getText())
于 2014-09-14T17:17:52.693 に答える