我想確定一個包含:JTextField、JDatePicker、JComboBox、JSpinner 的表單是否不包含空欄位。我有幾個具有不同欄位的表單,我希望使用通用方法對其進行評估,而無需管理欄位的順序以處理任何欄位序列。
我的目的是創建一個方法,如:
if method (field1, field2, field3) {
...
}
if method (field4, field5) {
...
}
我不想為多種形式做多種方法。
uj5u.com熱心網友回復:
您可以按照上面評論中提到的@camickr 進行操作:
創建要驗證的組件的 ArrayList。然后遍歷 ArrayList 檢查是否每個組件。當您找到一個空組件時,您將回傳 false。
您可以檢查它們的欄位型別,然后檢查它們是否為空/未選中??。
private boolean isFormValid(List<JComponent> components) {
for (int i = 0; i < components.size(); i ) {
if (components.get(i) instanceof JTextField) {
if (components.get(i).getText().isEmpty()) {
return false;
}
}
if (components.get(i) instanceof JComboBox) {
if (components.get(i).getSelectedItem() == null) {
return false;
}
}
// Add checks for other components you want to check here
}
return true;
}
uj5u.com熱心網友回復:
應該使用多型性。
為此,您需要一個抽象驗證器。驗證輸入顯示了如何InputVerifier為每個表單中的每種型別的欄位撰寫一個。然后每個具體InputVerifier都會有一個verify()你可以JComponent在表單中呼叫的。當需要驗證表單時,給定List<JComponent> list,您可以像這樣驗證整個表單:
boolean b = true;
for (JComponent field : list) {
b &= field.getInputVerifier().verify(field);
}
b &= someOtherFormLevelPredicate;
…
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331480.html
下一篇:如何在MVC中更新和查看當前視窗
