Como criar Array de Objetos utilizando um laço?

5 respostas
wID

Quero montar um painel com vários Labels e não quero mexer com o método paint para tentar criar o painel.
Com um laço for preencho um Array com instâncias de JLabels e assim controlo-os todos de uma vez sempre usando laços.

Exemplo de código:

JLabel item[];

for(int i=0;i<50;i++){
    item[i] = new JLabel();
   // código da posição e da agregação no painel.
}

Isso é possível?

5 Respostas

ivo_costa

Concerteza, só vai dar problema com a localização do jlabel, tipo se o layout do painel for null tu vai ter que criar variáveis de controle que vai incrementando o a posição x e y, e for usar outros gerenciadores de layout é só ir colocando no jPanel e torcer que fique legal:

JLabel item[];
JPanel painel = new JPanel();
painel.setLayout(null);
int x = 0;
int y = 0;

for(int i=0;i<50;i++){
    item[i] = new JLabel();
    item[i].setBounds(x, y, 10, 10);
    painel.add(item[i]);
    //incrementa o x e o y da maneira que tu precisar
   // código da posição e da agregação no painel.
}
wID

Muito obrigado Ivo!

Foi exatamente isto que imaginei, fiz agora com as posições e tudo, só preciso descobrir agora porque o NetBeans compila mas ocorre erro na primeira linha do for quando vou executar, foi este erro que me fez achar que isto não era possível. Qualquer coisa posto aqui.

Valeu!

nbluis

Falta instanciar o array.
deve tar dando nullpointerexception

JLabel item[] = new JLabel[50];

wID

nbluis:
Falta instanciar o array.
deve tar dando nullpointerexception

JLabel item[] = new JLabel[50];

Isso!
Estava dando nullpointerexception !
Agora sim funciona!

Obrigado.

erickcellani

eu recomendaria usar Collection ou List implementadas por um ArrayList!

Criado 8 de abril de 2008
Ultima resposta 9 de abr. de 2008
Respostas 5
Participantes 4