Có cách nào dễ dàng để kiểm tra xem một mục đã tồn tại trong JComboBox ngoài việc lặp lại thông qua sau? Đây là những gì tôi muốn làm:Kiểm tra xem một mục đã tồn tại trong JComboBox chưa?
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);
}
Cảm ơn!
+1, Nhưng tôi ngạc nhiên rằng giá trị trả về '-1' không được ghi chú trong API. – mre
Bạn cũng có thể tạo một lớp con DefaultComboBoxModel ghi đè phương thức addElement và sử dụng phương thức getIndexOf để kiểm tra trùng lặp trước khi gọi phiên bản superclass của addElement. Bằng cách này bạn không cần phải gọi mã de-duplication bằng tay, và ComboBox sẽ tự động thực hiện tất cả công việc cho mỗi mục được thêm vào nó. – Dyndrilliac
@mre nếu bạn nhìn vào nguồn 'DefaultComboBoxModel' bạn thấy' int getIndexOf (Object anObject) 'return' objects.indexOf (anObject) '. và 'đối tượng' là' Vector'. – 1ac0