[RESOLVIDO]Criar botões dentro de um for em java - Java - GUJ
[RESOLVIDO]Criar botões dentro de um for em java
BarbaraFerraz Julho 8, 2011, 9:05am #1
Estou desenvolvendo um jogo em java, no qual preciso criar vários botões, pois a lógica do jogo fica em torno de que botão o jogador clicou. Não compensa ir criando um a um. Então pensei em criar os botões dentro de um for. O único problema é que não sei como dar, a cada um dos botões, uma propriedade que os diferencie, de modo que eu possa depois, saber em que botão o jogador clicou.
Quero fazer algo mais ou menos assim:
Panel Botoes = new Panel();
GridLayout LayoutBotoes = new GridLayout(7,7);
Botoes.setLayout(LayoutBotoes);
for(int l=0;l<7;l++){
Button [color=red]B+l+c[/color] = new Button;
Botoes.add(B+l+c);
Desse modo, eu teria o nome do botão como sendo B01, se o jogador tivesse clicado no botão que está na linha 0 e na coluna 2. Entenderam?
Mas na hora de criar o botão com nome [color=red]B+l+c[/color], ele da erro. Alguém pode me ajudar? Existe uma outra propriedade, além do nome, com a qual eu possa diferenciar os botões?
ViniGodoy Julho 8, 2011, 9:46am #2
Quando for postar códigos, use a tag code, como descrito aqui:
GUJ – 16 Jan 07
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui...
Olá pessoal! Ultimamente tenho notado que grande parte dos novos GUJnautas não perceberam um recurso muito útil e importante que o site do GUJ oferece na hora de criar um post: A Formatação BB (Acho que tem um outro nome mais apropriado, mas não...
Quanto à sua dúvida. Primeiro, não é possível usar o sinal de + no nome de uma variável. +, no java, significa soma.
Há duas formas de diferenciar os botões.
a) Você pode criar um Array ou list de botões, e usa-los pelo índice (melhor alternativa, na minha opinião);
b) Você pode alterar a propriedade name do botão.
Panel pnlBotoes = new Panel(); GridLayout layoutBotoes = new GridLayout(7,7); pnlBotoes.setLayout(layoutBotoes); Button botoes[][] = new Button[7][7]; for(int l=0;l<7;l++){ for(int c=0;c<7;c++){ botoes[i][c] = new Button(); pnlBotoes.add(botoes[i][c]); } }
Note que agora você só precisa fazer algo como botoes[1][1] para acessar um botão.
Outra coisa. Cuidado com a convenção de nomes do Java. Variáveis começam com letras minúsculas. A primeira maiúscula usamos apenas em nomes de classes. Além disso, não se deve mais usar AWT hoje em dia. Procure passar seu código para Swing (vc vai usar classes como JButton no lugar de Button).