java jtextfiels密码_java-启用Jbutton之前要填充多个Jtextfields

如果(Ftext.getText().equals(“”)&& Mtext.getText().equals(“”)&& Ltext.getText().equals(“”)&& Addtext.getText ().等于(””))

表示所有字段必须为空.有时您需要大声朗读此逻辑…

“如果字段为空AND字段为空AND字段为空…”

如果您使用|| (或)相反,这意味着如果其中任何一个字段为空,则该语句为真,例如…

if (Ftext.getText().equals("") ||

Mtext.getText().equals("") ||

Ltext.getText().equals("") ||

Addtext.getText().equals("")) {...

如果字段不应仅包含空格,则还应该考虑使用.getText().isEmpty()或.getText().trim().isEmpty().

您可能还考虑编写单个DocumentListener实现,而不是为每个字段创建一个新的匿名类.

public class FieldValidationHandler implements DocumentListener() {

private List monitorFields;

public FieldValidationHandler(JTextField... fields) {

monitorFields = Arrays.asList(fields);

for (JTextField field : monitorFields) {

field.getDocument().addDocumentListener(this);

}

}

@Override

public void insertUpdate(DocumentEvent e) {

change();

}

@Override

public void removeUpdate(DocumentEvent e) {

change();

}

@Override

public void changedUpdate(DocumentEvent e) {

change();

}

private void change(){

boolean enabled = true;

for (JTextField field : monitorFields) {

if (field.getText().trim().isEmpty()) {

enabled = false;

break;

}

}

SaveButton.setEnabled(enabled);

}

}

然后,您只需创建一个实例…

FieldValidationHandler handler = new FieldValidationHandler(Ftext, Mtext, Ltext, Addtext);

现在,这种方法有点偷偷摸摸,因为它会自动将DocumentListener添加到您通过构造函数指定的字段中.

另一种方法可能是拥有某种“ Validation”控制器,您将其传递给此处理程序,并且在调用更改时它将调用某种“ validate”方法.

这会将侦听器与字段分开,但这在当时只是一个上下文问题.

我个人将拥有一个“注册”和“注销”过程,该过程将使您可以根据需要添加或删除字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值