Criar JLabel em tempo de execução

2 respostas
N

Olá pessoal, estou desenvolvendo um pequeno aplicativo, um jogo do tipo Monopoly, nestes possuo varias casas onde podem estar varios pinos ao mesmo tempo, como não estou conseguindo cria-los em tempo de execução tenho que colocar varios deles previamente em todas as casas o que ta um trabalho e tanto sem contar a falta de praticidade, gostaria de sabe se alguem passou por algo parecido e possa ajudar, fico desde já agradecido.

2 Respostas

ViniGodoy

É possível (e até fácil) criar JLabels em tempo de execução.

Basta fazer

E depois usar os comandos setText e setIcon, de acordo com o caso.

Após a label criada, você precisa posiciona-la em algum JPanel, provavelmente o da casa. Algo como:

pnlCopacabana.add(lblJogadorAmarelo); pnlCopacabana.invalidate();

Se você precisar só movimentar um jogador, pode retirar a label de um panel e colocar em outro:

pnlCopacabana.remove(lblJogadorAmarelo); pnlCopacabana.invalidate(); pnlLeblon.add(lblJogadorAmarelo); pnlLeblon.invalidate();

Eu já vi bons jogos escritos usando componentes do Swing, mas essa não é a forma mais comum. No seu caso, como é um jogo de tabuleiro, deve ser uma maneira fácil, mas o mais usual nos jogos é desenhar tudo, sobrescrevendo o método paint do seu JFrame. Aqui vão algumas boas referências sobre esse assunto:
http://www.cokeandcode.com/tutorials
http://fivedots.coe.psu.ac.th/~ad/jg/

N

Muitíssimo obrigado, vou dar uma olhada nas referencias que você me mandou, mas mesmo assim se não conseguir implementar posso fazer dessa maneira não usual mesmo que acho que já resolve muito meu problema. :lol:

Criado 25 de agosto de 2009
Ultima resposta 25 de ago. de 2009
Respostas 2
Participantes 2