Tôi đang gặp sự cố với mã sau, nơi tôi sử dụng JComboBox để thay đổi giá trị Chuỗi trong ô bảng. JComboBox hoạt động tốt, nhưng nếu tôi nhấp vào hộp và sau đó nhấp chuột đi mà không chọn bất kỳ thứ gì danh sách thả xuống của JComboBox vẫn hiển thị, ngay cả khi tôi xóa hàng. Nhấp vào một thành phần Swing khác như JButton thường khiến nó biến mất, nhưng không phải lúc nào cũng vậy.vấn đề tiêu điểm bằng cách sử dụng JComboBox làm trình chỉnh sửa ô trong JTable
TableColumn col = myTable.getColumnModel().getColumn(0);
JComboBox eq = new JComboBox();
eq.addItem("==");
eq.addItem("!=");
DefaultCellEditor editor = new DefaultCellEditor(eq);
col.setCellEditor(editor);
Edit: tôi đã bị lãng quên kể rằng trước đó tôi đặt:
myTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
Nếu tôi nhận xét dòng này ra hoặc thiết lập nó sai, sau đó nhấp vào các thành phần Swing khác KHÔNG gây hộp biến mất. Với nó trong, nhấp vào bất cứ điều gì mà tập trung làm cho hộp để đi xa, làm cho vấn đề ít gây phiền nhiễu nhưng có thể che giấu nguyên nhân của hành vi.
Tôi có làm gì sai ở đây hoặc quên một bước không? Cách khác, có cách nào buộc nó đóng cửa không?
Cảm ơn!
Cảm ơn cho nền và câu trả lời thấu đáo. Tôi đã xem xét các phương pháp đó nhưng chưa bật lên bất kỳ thứ gì. Tôi nghĩ rằng về cơ bản bạn đã có câu trả lời đúng, mặc dù tôi chỉ cần tìm ra nơi nó đang xảy ra. Cảm ơn! –
Câu trả lời hoàn toàn tuyệt vời! –
Cảm ơn bài học về sự khác biệt giữa trình kết xuất và trình chỉnh sửa. Rất hữu ích. – Boundless