Ho 12 filtri per 12 colonne su una tabella J. Ogni filtro è un campo di testo di tipo JTextField. Ogni volta che un utente inserisce i dati nel filtro della casella di testo, la ricerca avviene.È possibile avere un singolo listener di documenti su più campi di testo in Swing
Esempio: Supponiamo di avere 3 colonne e 3 caselle di testo sopra di esse come filtri. Ora qualsiasi cosa che è stata digitata in una qualsiasi delle caselle di testo deve avere il filtro della tabella. Sta succedendo alla grande.
╔═════════════╦═════════════╦═════════════╗
║ [TextField] ║ [TextField] ║ [TextField] ║
╠═════════════╬═════════════╬═════════════╣
║ ║ ║ ║
╠═════════════╬═════════════╬═════════════╣
... ... ...
╠═════════════╬═════════════╬═════════════╣
║ ║ ║ ║
╚═════════════╩═════════════╩═════════════╝
Testo campo listener per ciascuna del campo di testo si presenta così,
textField.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) { method(); }
public void removeUpdate(DocumentEvent e) { method(); }
public void insertUpdate(DocumentEvent e) { method(); }
};
La mia domanda è, ripeto questo codice per tutti i campi di 12 testo, che non ero davvero felice. È questo l'unico modo che abbiamo? o qualcuno mi può suggerire un modo migliore?
+1 .. brillante .. funzionato come un fascino. Nessuna ridondanza del codice ora .. Grazie mille .. :) – Amarnath
Puoi ancora farlo con una classe anonima: 'DocumentListener listener = new DocumentListener() {...}; for (campo di testo JTextField: fields) {textField.getDocument(). addDocumentListener (listener); } ' –
@WalterLaan a destra, ho dimenticato l'opzione – Robin