1

このコードを使用して、両方のフィールドが入力されている場合はボタンを有効にし、そうでない場合はボタンを無効にしています:

if (jTextFieldAccountName.getText().isEmpty() &&
    jPasswordFieldAccountPassword.getPassword().length == 0) {
    jButton_Next.setEnabled(false);
} else {
    jButton_Next.setEnabled(true);
}

しかし、フィールドの 1 つだけを入力しても、ボタンは有効になります。なんで?

4

2 に答える 2

4

あなたの声明はうまくいっています。あなたが書いたように、ボタンは両方のフィールドが空の場合にのみ無効になります(jTextFieldAccountNameが空でjPasswordFieldAccountPassword長さが0の場合)。最初のフィールドに何かを入力すると、両方のフィールドが空でなくなるため、条件が false に設定され、ボタンが有効になります。

ボタンを有効にする前に両方のフィールドを入力する場合は、ロジックを次のように変更します。

if ((!jTextFieldAccountName.getText().isEmpty()) && (jPasswordFieldAccountPassword.getPassword().length > 0)) {
            jButton_Next.setEnabled(true);
        }
        else {
            jButton_Next.setEnabled(false);
        }

このロジックを使用する場合、パスワードを最小の長さに設定することもできます (たとえば、パスワード > 6 など)。

于 2013-08-18T01:39:17.560 に答える