É melhor do que fazer seis condções e recarregar a imagem toda vez que o dado for sorteado.
Como farei esse vetor ?? tipow, como carregar as imagens nele !
Se puder especificar mais eu agradeceria, Obrigado !!!
Rummenigge
Ficaria assim :
publicclassSuaClasse{ImageIcon[]icones;publicSuaClasse(){icones=newImageIcon[6];carregaImagens();}privatevoidcarregaImagens(){icones[0]=newImageIcon("Imagem do dado com o lado 1");icones[1]=newImageIcon("Imagem do dado com o lado 2");icones[2]=newImageIcon("Imagem do dado com o lado 3");icones[3]=newImageIcon("Imagem do dado com o lado 4");icones[4]=newImageIcon("Imagem do dado com o lado 5");icones[5]=newImageIcon("Imagem do dado com o lado 6");}}
Um pequeno exemplo de como funcionaria :
privatemetodoTrocaImagem(){/*Sorteará um número de 0 a 5 referente às posições do dado*/intsorteio=(int)Math.round(Math.random()*6);labelDado.setIcon(icones[sorteio]);}
tiagooot
ok… era do jeito que estava fazendo…
porém os imageLabel o NetBeans criou em uma outra classe !
está assim meu programa…
Isso é uma pequena parte…
Agora as inicializações dos imageLabel e tal´s entao em uma função
e nao consigo usar os ImageLabel.setIcon por causa dos imageLabel
como faço pra utilizar eles na função public void botao();
Rummenigge
Eu não consegui entender o que você disse aqui
Essa função public void botao() seria invocada quando? Após um botão ser clicado?
Por que se for você vai ter que invocá-la dentro de actionPerformed(ActionEvent e) de ActionListener().
o problema é o o imageLabel1 , imageLabel2 , imageLabel3 , imageLabel4 e imageLabel5 foram criado na função:
private void initComponents()
{
...
}
e quando tento usar eles na private void btnRodarDadosActionPerformed(java.awt.event.ActionEvent evt) aparece no NetBeans Cannot Find symbol ...
Antes eu estava declarando dentro da função do botao, mas ae nao trocava...
O que preciso fazer para conseguir usar os ImageLables e consequentemente fazer a troca das imagens !!!
Obrigadoo
Rummenigge
publicclassSuaClasseimplementsActionListener{//Se você declarar os campos(variáveis) no topo da classe, elas serão vistas em todo o programa, evitando o \"Cannot find symbol\"JLabelimageLabel1,imageLabel2,imageLabel3,imageLabel4,imageLabel5,imageLabel6;ImageIcon[]icones;/*Como eu falei, os images icones têm que serem carregados logo no começo, se toda vez que alguém clicar no botão e todos eles forem instanciados, pode ocorrer algum atraso nas reconstruções das imagens. *///Construtor da classepublicSuaClasse(){carregaImagens();initComponents();}}publicvoidcarregaImagens(){icones=newImageIcon[6];icones[0]=newImageIcon("C:/Users/usuario/Desktop/Bozo/src/bozo/imagem/d1.JPG");icones[1]=newImageIcon("C:/Users/usuario/Desktop/Bozo/src/bozo/imagem/d2.JPG");icones[2]=newImageIcon("C:/Users/usuario/Desktop/Bozo/src/bozo/imagem/d3.JPG");icones[3]=newImageIcon("C:/Users/usuario/Desktop/Bozo/src/bozo/imagem/d4.JPG");icones[4]=newImageIcon("C:/Users/usuario/Desktop/Bozo/src/bozo/imagem/d5.JPG");icones[5]=newImageIcon("C:/Users/usuario/Desktop/Bozo/src/bozo/imagem/d6.JPG");}publicvoidinitComponents(){....}/*Agora você pode ter acesso às variáveis ImageLabel's toda vez que o botão for apertado*/1.privatevoidbtnRodarDadosActionPerformed(java.awt.event.ActionEventevt){2.Randomvalor=newRandom();3.15.16.if(jogadas<3){17.cbD1.setEnabled(true);18.cbD2.setEnabled(true);19.cbD3.setEnabled(true);20.cbD4.setEnabled(true);21.cbD5.setEnabled(true);22.23.24.25.//btnRodarDados.setText("Rodar Dados"); 26.if(!cbD1.isSelected()){27.dado1=valor.nextInt(6)+1;28.imageLabel1.setIcon(icones[dado1-1]);29.cbD1.setText(Integer.toString(dado1));30.}31.if(!cbD2.isSelected()){32.dado2=valor.nextInt(6)+1;33.cbD2.setText(Integer.toString(dado2));34.imageLabel2.setIcon(icones[dado2-1]);35.}36.if(!cbD3.isSelected()){37.dado3=valor.nextInt(6)+1;38.imageLabel3.setIcon(icones[dado3-1]);39.cbD3.setText(Integer.toString(dado3));40.}41.if(!cbD4.isSelected()){42.dado4=valor.nextInt(6)+1;43.imageLabel4.setIcon(icones[dado4-1]);44.cbD4.setText(Integer.toString(dado4));45.}46.if(!cbD5.isSelected()){47.dado5=valor.nextInt(6)+1;48.imageLabel5.setIcon(icones[dado5-1]);49.cbD5.setText(Integer.toString(dado5));50.}51.52.jogadas++;53.54.System.out.println("Jogadas: "+jogadas);55.txJogada.setText("Jogadas restantes: "+(3-jogadas));56.}57.}
Espero que ajude
Uma dica : Evite utilizar o NetBeans para geração de código automática, estude como estruturar bem um código, pelo menos evitará que você se enrole com problemas simples nos próximos
programas.
VLW!
tiagooot
blz amigo…
consegui aqui… deu td certo , valeu pela ajuda…