Jlabel e laço for

4 respostas
N

A questão é a seguinte,
Tenho vários jLabel em minha aplicação, eles estão posicionados em um jPanel de forma organizada … e suas variáveis estão da seguinte forma:
ss1
ss2
ss3 … e asim por diante.

pretendo setar texto nos jlabel’s usando um laço for, algo como isto:

for(int i = 1;i<= 10;i++){

[color=red] ss ? [/color].setText("Sensor: "+i);

}

onde está a interrogação é que preciso de ajuda… coloquei a variável "[color=red] ss+i .setText("Sensor: “+i); [/color]” , mas java não aceita essa sintaxe.
Então gostaria de saber outro geito pra que eu settexto nos jLabel’s dinâmicamente

4 Respostas

sech777

Amigo, você pode usar o FrameWork Collections, no qual existe uma classe (ArrayList) que classifica os objetos por index, exemplo.

JLabel ss1 = new JLabel("ss1");
JLabel ss2 = new JLabel("ss2);

List<JLabel> myList = new ArrayList<JLabel>();
myList.add(ss1);
myList.add(ss2);

int i=0;

for(JLabel jListLabel : myList)
 jListLabel.setText("Seu texto: "+ ++i);
lrgalego

Se seus labels possuem índices, porque você não os coloca em uma lista?
assim pode iterar sobre a lista ajustando os nomes

List<JLabel> labels = new ArrayList<JLabel>();
//...
// adiciona os labels na lista
//

int i = 0;
for( JLabel label : labels ){
   label.setText("Seu texto: "+ ++i);
}
N

Vlw vou testar :wink:

N

Funcionou! mas tem alguma outra forma de fazer o mesmo,
digo isto pq nem todos os Labels vão receber o texto.
Os labels que irao receber texto dependerá de um outro fator, entao a adição ao arrayList tbm tem que ser dinâmica.

Criado 29 de setembro de 2009
Ultima resposta 23 de out. de 2009
Respostas 4
Participantes 3