我有一個方法,檢查面板JPanel
中的所有JTextField
s,看看它們是否爲空,我遍歷容器中的所有組件。在容器中我有標籤,文本字段和組合框。所以我可以驗證前幾個JTextField
s,但是當我遇到第一個JComboBox<?>
驗證停止時,我似乎不明白爲什麼。以下是代碼: -問題與組件迭代和驗證
private boolean validateInputFields(JPanel container) {
for (Component comp : container.getComponents()) {
if (comp instanceof JTextField) {
JTextField temp = (JTextField) comp;
if (temp.getText().trim().equals("")) {
changeComponentProperties(temp);
return true;
} else{
temp.setBackground(Color.WHITE);
temp.setForeground(Color.BLACK);
}
}
}
return false;
}
任何援助將不勝感激。
還要注意,當點擊一個按鈕(比如保存按鈕)時會調用它。
考慮使用'JFormattedTextField'。這應該允許您在輸入無效輸入時立即更改背景顏色。看到[這個答案](http://stackoverflow.com/a/13424140/1076463)爲例 – Robin
感謝所有人的貢獻,你提供的所有解決方案都是有效和可行的,但在我的情況下,我找出了問題 - 事情是一些組件在屏幕上不可見,並且通過獲取的組件進行迭代時,它們也不包含在內,所以我添加了一個條件來檢查組件可見性狀態,即'comp.isVisible()'。 – tmwanik