Tôi có 12 bộ lọc cho 12 cột trên một JTable. Mỗi bộ lọc là một TextField của loại JTextField. Mỗi khi người dùng nhập dữ liệu vào bộ lọc hộp văn bản thì tìm kiếm sẽ xảy ra.Có thể có một trình lắng nghe tài liệu duy nhất cho nhiều trường văn bản trong Swing
Ví dụ: Giả sử nói, tôi có 3 cột và 3 hộp văn bản phía trên chúng làm bộ lọc. Bây giờ bất kỳ thứ gì được gõ vào bất kỳ hộp văn bản nào mà việc lọc bảng của tôi phải xảy ra. Nó đang xảy ra tuyệt vời.
╔═════════════╦═════════════╦═════════════╗
║ [TextField] ║ [TextField] ║ [TextField] ║
╠═════════════╬═════════════╬═════════════╣
║ ║ ║ ║
╠═════════════╬═════════════╬═════════════╣
... ... ...
╠═════════════╬═════════════╬═════════════╣
║ ║ ║ ║
╚═════════════╩═════════════╩═════════════╝
Text nghe cho mỗi lĩnh vực văn bản trông như thế này,
textField.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) { method(); }
public void removeUpdate(DocumentEvent e) { method(); }
public void insertUpdate(DocumentEvent e) { method(); }
};
Câu hỏi của tôi là, tôi lặp lại mã này cho tất cả các lĩnh vực 12 văn bản, mà tôi đã không thực sự hạnh phúc. Đây có phải là cách duy nhất chúng ta có? hoặc một số có thể gợi ý cho tôi một cách tốt hơn?
1 .. rực rỡ .. đã làm việc như một nét duyên dáng. Không có sự thừa mã ngay bây giờ .. Cảm ơn rất nhiều .. :) – Amarnath
Bạn vẫn có thể làm điều này với một lớp ẩn danh: 'DocumentListener listener = new DocumentListener() {...}; cho (JTextField textfield: fields) {textField.getDocument(). addDocumentListener (trình nghe); } ' –
@WalterLaan đúng, tôi quên rằng tùy chọn – Robin