使用内容GUI编辑,如何才能创建一个JTextField或JFormattedText领域,必须确认反对一个经常的表达吗?

StackOverflow https://stackoverflow.com/questions/1378978

我有一个经常的表达(\d{4}\w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}),我需要验证输入的一个文本领域对用户单击"确定"的按钮或将光标移动到另一个领域。我知道如何做的,编写代码。然而,我很感兴趣,如果它可能有内容GUI编辑做的一些工作对我来说,尤其是因为我要搬离蚀和朝//需要将物品寄为我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;
    }

  }
});

我还没有编译的代码,因此可能包含错误。但我认为你的想法;)

其他提示

这不是最简单的解决方案,但它是一个非常强大的一:尝试 弹簧丰富的客户, ,验证可以达到通过:

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);
        }
    });

...

和闺形式是容易地创造了通过:

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

E.g。看看 在这里, 为验证或 这里更多的相关信息.我用这个成功在我 开放源码项目 ...

这样你可以创建一个更一般的摇摆成分可能加入 //需要将物品寄件的调色板

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top