JLabel e JTextField

2 respostas
ethomas

Pessoal,

como faço para setar 15 label como invisivel,usando estrutura de repetição ?
Queria fazer tipo assim:

i=1;

while (i<=15){

jLabel i.  .setVisible(false);

jTextField i .setVisible(false);

i++;

}

Só que assim não dá certo…

Alguem poderia me ajudar???

2 Respostas

cassio

Pra pegar cada componente assim pelo indice, só se eles estivessem em um array…

Você pode improvisar assim olha:

Suponha que seus componentes estejam dentro de um JPanel. Vocë pode conseguiru ma referência para um array com todos os componentes desse JPanel. Provavelmente esse JPanel não possui somente JLabels e JTextFields, logo, para cada indice do array, é necessário verificar o tipo do componente. Se for um jLabel ou JTextField, vc seta como não visivel.

olha o exemplo:

Component componentes[] = seuPanel.getComponents();
for(int i = 0; i < componentes.length; i++){
   if(componentes[i] instanceof JLabel)
      ((JLabel)componentes[i]).setVisible(false);
   else if(componentes[i] instanceof JTextField)
      ((JTextField)componentes[i]).setVisible(false);
}

Fiz esse codigo meio rapido e digitei direto aqui, nao compilei pra testar. Se der problema, me avise!

Abraço!

dudaskank

assim é outro modo de fazer a mesma coisa:

Component componentes[] = seuPanel.getComponents();
 for(int i = 0; i < componentes.length; i++){
    if(componentes[i] instanceof JLabel || componentes[i] instanceof JTextField)
       componentes[i].setVisible(false);
 }

mas usando só um if hehee

flw

ps: essa foto da moça me lembra uma pessoa que conheço…

Criado 12 de setembro de 2006
Ultima resposta 12 de set. de 2006
Respostas 2
Participantes 3