栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

启用Jbutton之前要填充多个Jtextfield

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

启用Jbutton之前要填充多个Jtextfield

if (Ftext.getText().equals("") && Mtext.getText().equals("") &&Ltext.getText().equals("") && Addtext.getText().equals(""))

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

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

如果您改用

||
(或),则意味着如果其中任何一个字段为空,则该语句
true
例如为…

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<JTextField> 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”方法

change

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

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/438960.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号