Как с помощью графического редактора NetBeans создать поле 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}), что мне нужно проверить ввод текстового поля, когда пользователь нажимает кнопку «ОК» или перемещает курсор в другое поле.Это я умею делать, пишу код.Тем не менее, меня интересует, возможно ли, чтобы редактор графического интерфейса NetBeans выполнял за меня часть работы, тем более, что я отхожу от 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;
    }

  }
});

Я не компилировал этот код, поэтому он может содержать ошибки.Но думаю, вы поняли идею ;)

Другие советы

Это не самое простое решение, но очень мощное:пытаться Весенний богатый клиент, где проверка может быть достигнута через:

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

Например.смотреть здесь для проверки или здесь для получения дополнительной информации.Я успешно использую это в своем проект с открытым исходным кодом ...

Таким образом, вы можете создать более общий компонент Swing, который можно будет добавить в палитра компонентов NetBeans

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top