Eu estou tentando montar uma classe para limpar os campos de um fórmulario, independente de ser JTextField, JComboBox, etc … (Parecido como era no VB por exemplo que vc varria um vetor de objetos com o Foreach) …
Alguém sabe como fazer??? …
Eu estou querendo passar o JPanel para o método e ele fazer a varredura dos componentes pra mim !!!
Eu tava fazendo assim(e estava dando errado)
// seta os defaults
public void limpaTela(JPanel obj){
Class classe = obj.getClass();
Field atributo[] = classe.getDeclaredFields();
for (int i = 0; i < atributo.length; i++){
if (atributo[i].getType().getSimpleName().equals("JTextField")) {
//JOptionPane.showMessageDialog(null, "Atributo: "+atributo[i].getType().getSimpleName());
atributo[i].getType().getSimpleName().setText = "";
}
}
}
Ae, em outro fórum me disseram pra partir por esse caminho
[code] // seta os defaults
public void limpaComponentes(JPanel obj){
String Component[];
Component[] comps[] = obj.getComponents();
for (int i = 0; i < comps.length; i++){
if (comps[i] instanceof JTextField) {
}
}
}[/code]
porém, esse último eu não entendi o que significa
Component[] comps[] = obj.getComponents();
Quem puder me ajudar, por favor, preciso de uma luz rsrs
public void limpaComponentes(JPanel obj){
Component[] comps[] = obj.getComponents(); // retorna todos os componentes do JPanel
for (int i = 0; i < comps.length; i++) {
if (comps[i] instanceof JTextField) { // verifica se é um JTextField
((comps[i]) JTextField).setText("");
}
}
}
do jeito que o diego2005 disse deve funcionar sim, você tambem pode fazer um outro if e checar se trata-se de outro tipo de componente e tratar cada caso.
se for um um combobox por exemplo, você pode voltar a seleção para a primeira opção
for (int i=0; i < getContentPane().getComponentCount(); i++) {
Component c = getContentPane().getComponent(i);
if (c instanceof JTextField) {
JTextField field = (JTextField) c;
field.setText("");
}
}
JPanel é uma classe de Java (javax.swing.JPanel), e nesse caso é um objeto passado como parâmetro nessa função, de onde os componentes são usados na iteração.
Só uma observação tonheds, coloque o seu código dentro das tags [ CODE ] pra ele sair formatado e ser mais fácil de ler.
Muito obrigado pessoal, problema resolvido
Usei a solução da priscila.vriesman
Obrigado a todos (eu já tinha largado mão de fazer isso, mas, agora tá legalzinho o esquema).