for (Component c : pane.getComponents()) {
if (c instanceof JTextField) {
((JTextField)c).setText("");
}
}
Pero si tiene JTextFields más profundamente anidados, se puede usar la siguiente forma recursiva:
void clearTextFields(Container container) {
for (Component c : container.getComponents()) {
if (c instanceof JTextField) {
((JTextField)c).setText("");
} else
if (c instanceof Container) {
clearTextFields((Container)c);
}
}
}
Editar: una muestra para Tom Hawtin - tackline sugerencia sería tener lista en su clase de trama:
List<JTextField> fieldsToClear = new LinkedList<JTextField>();
y cuando inicializa el texto individual campos, añadir a esta lista:
someField = new JTextField("Edit me");
{ fieldsToClear.add(someField); }
y cuando el usuario hace clic en el botón de borrado, simplemente:
for (JTextField tf : fieldsToClear) {
tf.setText("");
}
¿Eso borra los cuadros combinados también? (Podría ser estático, por cierto). –
JComboBox (extiende JComponent) y JTextField (extiende JTextComponent que extiende JComponent) están en dos rutas diferentes – akarnokd
Revisé el origen de JComboBox y no veo ningún lugar donde JComboBox agregue su editor componente a su lista de componentes. – akarnokd