Fala galera…seguinte…
To precisando apagar os valores de todos os JTextField de um JPanel…fazer assim tudo bem:
tfQlqCoisa.setText("");
O problema eh que o meu JPanel tem uns 50 campos…queria saber se tem como fazer isso de uma forma mais dinâmica sem ter que por 50 linhas de código “iguais”!! No Delphi tem como mas aqui no Java ainda naum descobri!!
Vlw galera!!!
Cara!
É realmente um trabalho braçal e chato.
Vc poderia numerar os JTextFields de 1 a 50 e colocar um “While” ou “For” para limpar todos - Acho meio que anti padrão até mas é uma saída basta organizar o código.
Ou criar um método que faça isto que seja invocado sempre que necessário.
Tudo é válido.
Abraço!
Vc pode resolver esse problema dessa maneira:
public static void limpaForm(Component c[])
{
Component c1[] = c;
for (int i=0; i < c1.length; i++)
{
//varre todos os componentes
if (c1[i] instanceof JTextField) {
//apaga os valores
JTextField field = (JTextField) c1[i];
field.setText("");
}
}
}
Como JPanel herda de Container que herda Component não há problemas …
Fala galera…valeu pelas respostas…
ramilani12, era exatamente isso que eu precisava, agora tah 100%.
Valews!!
E como seria a chamada dessa função??
limpaForm(jPanel1.getComponents());
Component[] panel = jPanel1.getComponents();
limpaForm( panel );
Douglas,
Na prática, você quer voltar seus JTextFields para o estado original quando se abre a tela, é isso? Se for, a melhor forma é você ter gerência de estado do teu form de modo a poder voltar para estados arbritários. Por exemplo, talvez você tenha valores default pra combos e outros widgets e a idéia seria restaurá-los também.