繁体   English   中英

使用 NetBeans GUI 编辑器,如何创建必须根据正则表达式进行验证的 JTextField 或 JFormattedText 字段?

[英]Using the NetBeans GUI editor, how can I create a JTextField or JFormattedText field that must be validated against a regular expression?

我有一个正则表达式 ( \d{4}\w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2} ) 当用户单击“确定”按钮或将光标移动到另一个字段时,我需要验证文本字段的输入。 我知道该怎么做,编写代码。 但是,我感兴趣的是是否可以让 NetBeans GUI 编辑器为我完成一些工作,特别是因为我正在从 Eclipse 转向 NetBeans 作为我选择的 IDE,我想充分利用它提供的工具。

打开 JTextField 的属性,在属性选项卡中查找 inputVerifier。 打开它

现在将要求您介绍 InputVerifier 代码。

ftf2.setInputVerifier(new InputVerifier() {
  public boolean verifyText(String textToVerify) {
     Pattern p = Pattern.compile("your regexp");
     Matcher m = p.matcher(textToVerify);
        if (m.matches()) {
        setComponentValue(textToVerify);
        return true;
    }
    else {
        return false;
    }

  }
});

我还没有编译这段代码,所以可能包含错误。 但我想你明白了;)

这不是最简单的解决方案,但它是一个非常强大的解决方案:尝试spring rich client ,可以通过以下方式进行验证:

public class Validation extends DefaultRulesSource {

private Constraint NAME_VALIDATION = all(new Constraint[]{minLength(3), required()});

public void load() {
    addRules(new Rules(Person.class) {

        @Override
        protected void initRules() {
            add("name", NAME_VALIDATION);
        }
    });

...

并且可以通过以下方式轻松创建 gui 表单:

    TableFormBuilder formBuilder = getFormBuilder();
    formBuilder.add("firstName");
    formBuilder.add("name");
    formBuilder.row();

例如,在此处查看验证或在此处查看更多信息 我在我的开源项目中成功地使用了它......

通过这种方式,您可以创建一个更通用的 swing 组件,该组件可以添加到netbeans 组件面板

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM