Giả định rằng nó liên quan đến một luồng khác không phải lúc nào cũng đúng. Nó có thể là chủ đề chính nó gây ra vấn đề.
Ngoại lệ này có thể xảy ra do sự kiện được kích hoạt khi mục kết hợp bị xóa và trong phương thức xử lý sự kiện này, bạn vẫn tham chiếu đến mục combobox.
Ví dụ khi bạn xóa một nơi nào đó (không phải trong actionPeformed()) trong mã của bạn mục cuối cùng từ hộp tổ hợp với combo.removeItemAt (0) hoặc removeAllItems() thì sự kiện actionPerformed sẽ được kích hoạt. Nhưng rất thường là phương thức actionPerformed() chứa mã để phản ứng trên các hành động của người dùng (người dùng đã nhấp vào đâu đó trên combobox). Vì vậy, khi mục cuối cùng đã bị xóa không có mục nào trong combobox và bất kỳ tham chiếu đến một mục hoặc chỉ mục trong actionPerformed() sẽ gây ra một ngoại lệ.
Giải pháp với điều này là di chuyển mã từ actionPerformed() sang ví dụ: mouseClicked() hoặc trình xử lý sự kiện khác tùy thuộc vào những gì bạn muốn làm.
Khi tôi đồng ý với câu trả lời để sử dụng phương pháp tích hợp để làm điều này, mã này hoạt động tốt khi tôi tự chạy nó .Bạn có chắc chắn rằng vấn đề của bạn không phải ở nơi khác? – Thor84no
vâng, tôi đã sử dụng phương thức removeAllItems(). Nó đã xóa tất cả các mục. Nhưng vẫn cho ngoại lệ. – chathura
Bạn có thể gặp vấn đề về luồng. Có các Chủ đề khác truy cập vào combobox (và chỉnh sửa nó) không? – brimborium