有沒有簡單的方法來檢查一個項目是否已經存在於JComboBox中,除了迭代後者?這是我想要做的:檢查一個項目是否已經存在於JComboBox中?
Item item = ...;
boolean exists = false;
for (int index = 0; index < myComboBox.getItemCount() && !exists; index++) {
if (item.equals(myComboBox.getItemAt(index)) {
exists = true;
}
}
if (!exists) {
myComboBox.addItem(item);
}
謝謝!
+1,但我很驚訝,在API中沒有注意到'-1'返回值。 – mre 2012-01-17 17:52:35
您也可以創建一個DefaultComboBoxModel子類來覆蓋addElement方法,並使用getIndexOf方法在調用addElement的超類版本之前檢查是否存在重複。這樣,您不必手動調用重複數據刪除代碼,而且ComboBox將自動爲添加到其中的每個項目執行所有工作。 – Dyndrilliac 2014-03-01 17:39:10
@mre如果你看看DefaultComboBoxModel的源代碼,你會看到'int getIndexOf(Object anObject)'return'object.indexOf(anObject)'。而'objects'是'Vector'。 – 1ac0 2014-11-21 16:12:31