1

我正在使用此代码在填写两个字段时启用按钮,并在未填写时禁用它:

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

但即使我只输入其中一个字段,该按钮也会启用。为什么?

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 回答
1

我认为您的意思是使用 OR 逻辑运算符,即||

如果(文本框为空或密码太小)那么...

然后试试这段代码:

if ( jTextFieldAccountName.getText().isEmpty()
     || jPasswordFieldAccountPassword.getPassword().length < 6 )
{
    jButton_Next.setEnabled(false);
} else {
    jButton_Next.setEnabled(true);
}

注意我还更改了密码条件,因为密码至少应为 6 个字符。

于 2013-08-18T01:55:20.530 回答