5
我有12個過濾器用於12列在JTable上。每個過濾器都是JTextField類型的TextField。每次用戶在文本框過濾器中輸入數據時,都會發生搜索。是否有可能在Swing中有多個文本字段的單個文檔監聽器
例如: 假設說,我有3列和3個文本框作爲過濾器。現在任何在我的表格過濾器中輸入的任何文本框都必須發生。它發生很好。
每個文本字段的╔═════════════╦═════════════╦═════════════╗
║ [TextField] ║ [TextField] ║ [TextField] ║
╠═════════════╬═════════════╬═════════════╣
║ ║ ║ ║
╠═════════════╬═════════════╬═════════════╣
... ... ...
╠═════════════╬═════════════╬═════════════╣
║ ║ ║ ║
╚═════════════╩═════════════╩═════════════╝
文本字段監聽器看起來像這樣,
textField.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) { method(); }
public void removeUpdate(DocumentEvent e) { method(); }
public void insertUpdate(DocumentEvent e) { method(); }
};
我的問題是,我重複此代碼對所有的12個文本字段,我是不是真的很開心。這是我們唯一的方式嗎?或者可以有人建議我一個更好的方法?
1 ..輝煌的一例..工作就像一個魅力。現在不需要冗餘代碼..非常感謝.. :) – Amarnath
您仍然可以使用匿名類來執行此操作:'DocumentListener listener = new DocumentListener(){...}; for(JTextField textfield:fields){textField.getDocument()。addDocumentListener(listener); }' –
@WalterLaan的權利,我忘了那個選項 – Robin