Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/05/2011, 15:58
Avatar de sivadmp
sivadmp
 
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 14 años, 1 mes
Puntos: 20
Respuesta: Como voltear las cartas en un areglo de botones en java

hola yisus

si entiendo bien estas realizando un juego de cartas y lo que quieres hacer es, que cuando se haga click en una carta te muestra la cara.

lo que tienes que hacer: en tu clase Carta tener los atributos de imagen de la "cara" y la imagen de "atras" y crear una funcion para ver cual cara esta visualizada "darVuelta()"

Código Java:
Ver original
  1. class CartaButton extends JButton{
  2.      private ImageIcon cara=null;
  3.      private ImageIcon atras= null;
  4.        
  5.       public CartaButton(){
  6.             cara = new ImageIcon(getClass().getResource("assets/images/caraQ.png"));
  7.             atras = new ImageIcon(getClass().getResource("assets/images/atrasQ.png"));
  8.  
  9.              //por defecto adicionamos la cara de atras
  10.              this.setIcon(atras);
  11.       }
  12.       public void darVuelta(){
  13.              //verificar que tipo de cara esta visualizada
  14.              if(this.getIcon().equals(cara)){
  15.                     this.setIcon(atras);
  16.              }
  17.              if(this.getIcon().equals(atras)){
  18.                     this.setIcon(cara);
  19.              }
  20.       }
  21.      //function getters and setters
  22. }

en tu aplicación grafica tienes ya creada la matriz, a cada objeto de la matriz tienes que adicionarle el evento MouseListener

Código Java:
Ver original
  1. CartaButton btn[][]=...
  2.  
  3. int row=-1;
  4. int col=-1;
  5.  
  6. row=btn.length;
  7. if(btn.length>0)
  8.     col=btn[0].length;
  9. for(int i=0;i<row;i++){
  10.     for(int j=0;j<col;j++){
  11.           btn[i][j]=new CartaButton();
  12.           btn.addMouseListener(new MouseListener() {
  13.             @Override
  14.             public void mouseReleased(MouseEvent arg0) {}
  15.            
  16.             @Override
  17.             public void mousePressed(MouseEvent arg0) {}
  18.            
  19.             @Override
  20.             public void mouseExited(MouseEvent arg0) {}
  21.            
  22.             @Override
  23.             public void mouseEntered(MouseEvent arg0) {}
  24.            
  25.             @Override
  26.             public void mouseClicked(MouseEvent arg0) {
  27.                 CartaButton _btn=(CartaButton)arg0.getComponent();
  28.                                 //adicionar la imagen de acuerdo al tipo de carta por ejemplo Q
  29.                                 _btn.darVuelta();  
  30.             }
  31.         });
  32.     }
  33. }

Espero que te haya servido este pequeño codigo simplificado

:) Saludos
__________________
agradecer no cuesta nada
Entre más información proporciones más fácil será ayudarte, y asi evitar adivinar el problema con el que cuentas.