2016-08-04 18 views
1
ComboBox companyCity = new ComboBox(); 
companyCity.setUIID("TextField"); 
companyCity.addItem("Choose City"); 
for (Map<String, Object> entry : alacc.responseCity) { 
    String cityName = (String) entry.get("name"); 
    companyCity.addItem(cityName); 
} 

TextField companyPhone = new TextField(); 
companyPhone.setHint("Phone"); 

1)對於combobox,使用addConstraint(companyCity,new LengthConstraint(2))不起作用,因爲它已經「選擇城市」文本。我們有沒有其他的限制,特別是對於組合框?Validator for comboBox and phn否

2)另外我必須驗證電話號碼。我已經使用addConstraint(companyPhone,新的RegexConstraint(phoneRegex,「必須是有效的電話號碼」));但是phoneRegex在這裏是什麼? 我必須使用自己的正則表達式嗎?例如final String phoneRegex =「^((\ d {3} - | \(\ d {3} \)\ s?)?\ d {3} - |^\ d {3}(\。)?\ d {3} \ 3)\ d {4} $「; 如果是這樣,爲什麼它不被定義爲默認的URL正則表達式,電子郵件正則表達式等? 3)當我使用「addConstraint(公司電話,新的RegexConstraint(phoneRegex,」必須是有效的電話號碼「));」錯誤味精即。 「必須是有效的電話號碼」不會出現在 文本字段中。如何顯示錯誤消息?

回答

1
  1. 不需要您需要爲組合框選擇創建約束。

  2. 電話的複雜程度要比電子郵件的正確驗證要複雜一些。我們沒有一個體面的正則表達式版本。

  3. 使用setShowErrorMessageForFocusedComponent(true)

+0

三江源曬......但對於組合框,我不能做新LengthConstraint(2)因爲我已經有「選擇城市」。你能給我一些關於組合框的想法嗎?我還有一個問題,該按鈕被禁用,直到所有req。字段被填充。它造成了一點困惑。所以我想要的是將提交按鈕的文本設置爲「所有字段都是強制性的」,並且當所有字段填滿並且按鈕可點擊時,如何將按鈕文本更改爲提交?我可以那樣做嗎? – beck

+0

「約束」是一個非常簡單的2種方法的接口。只需重寫isValid方法並檢查組合。 –