Hola a todos, hoy os voy a explicar como podemos limpiar un formulario completo en Java.
Cuando tenemos un formulario con datos, es normal que necesitemos limpiar los datos en alguna ocasión pero hay veces que tenemos muchos elementos y se hace pesado tener que ir elemento a elemento, reiniciando o borrando texto.
Por eso, os traigo una función que nos va a permitir hacerlo de forma sencilla:
/** * Llamalo inicialemente con this.getContentPane().getComponents() * * @param componentes */ public void limpiarFormulario(Component[] componentes) { for (int i = 0; i < componentes.length; i++) { if (componentes[i] instanceof JPanel) { limpiarFormulario(((JPanel) componentes[i]).getComponents()); } else if (componentes[i] instanceof JViewport) { limpiarFormulario(((JViewport) componentes[i]).getComponents()); } else if (componentes[i] instanceof JScrollPane) { limpiarFormulario(((JScrollPane) componentes[i]).getComponents()); } else if (componentes[i] instanceof JTextField) { ((JTextField) componentes[i]).setText(""); } else if (componentes[i] instanceof JTextArea) { ((JTextArea) componentes[i]).setText(""); } else if (componentes[i] instanceof JPasswordField) { ((JPasswordField) componentes[i]).setText(""); } else if (componentes[i] instanceof JCheckBox) { ((JCheckBox) componentes[i]).setSelected(false); } else if (componentes[i] instanceof JRadioButton) { ((JRadioButton) componentes[i]).setSelected(false); } else if (componentes[i] instanceof JToggleButton) { ((JToggleButton) componentes[i]).setSelected(false); } else if (componentes[i] instanceof JComboBox) { ((JComboBox) componentes[i]).setSelectedIndex(0); } else if (componentes[i] instanceof JSlider) { ((JSlider) componentes[i]).setValue(((JSlider) componentes[i]).getMinimum()); } else if (componentes[i] instanceof JSpinner) { ((JSpinner) componentes[i]).setValue(0); } else if (componentes[i] instanceof JFormattedTextField) { ((JFormattedTextField) componentes[i]).setText(""); } else if (componentes[i] instanceof JTable) { ((DefaultTableModel) (((JTable) componentes[i]).getModel())).setRowCount(0); } } }
La forma de llamarlo es simple:
limpiarFormulario(this.getContentPane().getComponents());
Siendo this el JFrame o JDialog de turno. Si te fijas en la función, se llama así misma, básicamente es recursiva si el elemento contienen otros elementos.
He puesto los más comunes, si necesitas añadir algún elemento personalizado, solo debes añadir otro else if. Si quieres que añadamos alguno en concreto, coméntanos.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Excelente!!!
Excelente