Tipo do Componente - RESOLVIDO

5 respostas
jefersonpo

Caros colegas, como faço para saber o tipo de componente que recebeu o foco.

Tenho um Jpanel com vários componentes de variados tipos. Quero “varrer” esses componentes, e todo componente do tipo JtextField que for encontrado eu quero limpar o texto.

Eu até consigo focar o componente, mas não consigo saber se é JTextField ou JLabel por exemplo

Obrigado

5 Respostas

CristianPalmaSola10

Para saber o tipo do componente faça

if(componente instanceof JTextFiedl) {
 //limpa o testo
}
mateusviccari

melhor ainda:

if(meuComponente instanceof JTextComponent){
    ((JTextComponent)meuComponente).setText("");
}

Assim voce pega JTextArea e outros componentes de texto, e não só JTextField

jefersonpo
CristianPalmaSola10:
Para saber o tipo do componente faça
if(componente instanceof JTextFiedl) {
 //limpa o testo
}

Pessoal. Primeiro quero agradecer pela ajuda, mas ainda estou com problemas.
O meu código esta abaixo.

Component[] comp = jPanel7.getComponents();                
        for (int cont = 0; cont < jPanel7.getComponentCount(); cont++){
            if (comp[cont] instanceof JTextField){                
                ????
            }
        }

Dessa forma estou conseguindo usar setBackGround(), setVisible(), setEnabled() entr aoutras, mas não consigo usar o settext() para alterar o testo do componente.

Porque?

Obrigado

CristianPalmaSola10

tenta assim

Component[] comp = jPanel7.getComponents();                  
        for (int cont = 0; cont < jPanel7.getComponentCount(); cont++){  
            if (comp[cont] instanceof JTextField){                  
                JTextField text = (JTextField) comp[cont];
                text.setEnabled(true);
            }  
        }
jefersonpo
CristianPalmaSola10:
tenta assim
Component[] comp = jPanel7.getComponents();                  
        for (int cont = 0; cont < jPanel7.getComponentCount(); cont++){  
            if (comp[cont] instanceof JTextField){                  
                JTextField text = (JTextField) comp[cont];
                text.setEnabled(true);
            }  
        }

Valeu Cristian.
Para ficar do jeito que eu queria, no final ficou assim

if (comp[cont] instanceof JTextField){                    
                JTextField text = (JTextField) comp[cont];  
                text.setText("");  
            }

Obrigado.

Criado 6 de dezembro de 2012
Ultima resposta 10 de dez. de 2012
Respostas 5
Participantes 3