簡體   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