[DÚVIDA] Componets[]

4 respostas
carlinhoscomp

Iai turma

Galera preciso descobrir quais componentes estão dentro de um Components[].

existe uma outra forma sem comparar com “instanceof”

Pensei em algo do tipo assim:

...
for (int i = 0; i < components[].lenght; i++){
System.out.println(components[i]."função que retorna o nome do componente");
}
...

Aguado!

4 Respostas

georgesq

Components é uma classe sua?

Caso positivo, coloca o atribute name na classe mais abstrata e chama o getName() .

[s]

carlinhoscomp

Components não é uma classe minha.

Component é uma função que tem no java.

Exemplo:

public void desabilitaComponentesPainel(JPanel painel) {
        Component[] componentes = painel.getComponents();

        for (int i = 0; i < componentes.length; i++) {
            if (componentes[i] instanceof JTextField) {
                JTextField campo = (JTextField) componentes[i];
                campo.setEnabled(false);
            } else if (componentes[i] instanceof JPasswordField) {
                JPasswordField campo = (JPasswordField) componentes[i];
                campo.setEnabled(false);
            } else if (componentes[i] instanceof JFormattedTextField) {
                JFormattedTextField campo = (JFormattedTextField) componentes[i];
                campo.setEnabled(false);
            } else if (componentes[i] instanceof JComboBox) {
                JComboBox campo = (JComboBox) componentes[i];
                campo.setEnabled(false);
            } else if (componentes[i] instanceof JRadioButton) {
                JRadioButton campo = (JRadioButton) componentes[i];
                campo.setEnabled(false);
            }
        }
    }
visola

Acho que o que você quer é:

for (int i = 0; i &lt; components.length; i++) {
   System.out.println(components[i].getClass().getName());
}

Isso vai te dar o nome da classe do componente.

E

Cara pelo método que tu passou, tu quer generalizar pra poder usar o método setEnabled(). Aí vai uma dica

setEnabled() é um método da classe JCompenet, pai de todas essas classe que você encadeou ai.

Se num entedeu, me fala :wink: .

Criado 24 de fevereiro de 2011
Ultima resposta 26 de fev. de 2011
Respostas 4
Participantes 4