for (Component c : pane.getComponents()) {
if (c instanceof JTextField) {
((JTextField)c).setText("");
}
}
Aber wenn Sie JTextFields tiefer verschachtelt haben, könnten Sie die folgende rekursive Form verwenden:
void clearTextFields(Container container) {
for (Component c : container.getComponents()) {
if (c instanceof JTextField) {
((JTextField)c).setText("");
} else
if (c instanceof Container) {
clearTextFields((Container)c);
}
}
}
Edit: Eine Probe für Tom Hawtin - tackline Vorschlagsliste haben, wäre in Ihrer Frame-Klasse:
List<JTextField> fieldsToClear = new LinkedList<JTextField>();
und wenn Sie den einzelnen Text initialisieren Felder, so dass sie zu dieser Liste hinzuzufügen:
someField = new JTextField("Edit me");
{ fieldsToClear.add(someField); }
und wenn der Benutzer auf die Löschtaste klickt, nur:
for (JTextField tf : fieldsToClear) {
tf.setText("");
}
Löscht das auch Kombinationsfelder? (Könnte auch statisch sein, btw.) –
JComboBox (erweitert JComponent) und JTextField (erweitert JTextComponent, die JComponent erweitert) sind auf zwei verschiedenen Pfaden – akarnokd
Ich überprüfte die Quelle von JComboBox und ich sehe keinen Ort, wo JComboBox seinen Editor hinzufügt Komponente zu seiner Komponentenliste. – akarnokd