Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/05/2012, 04:07
Pacheco_1990_2
 
Fecha de Ingreso: diciembre-2011
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Respuesta: Cuadricula en java [Vector]

Muchas gracias por las respuestas. :D Lo he entendido perfectamente (menos lo que hay que sumar 1 que no entiendo el porque). Solo que ahora tengo un problema. Para realizar todo el programa necesito saber que casilla clico con el ratón (para poder pintarla). Por tanto cada casilla tiene que tener unas coordenadas distintas. No puedo hacer que cada casilla empiece en (0,0). Porque necesito saber que casilla clico según las cordenadas del ratón y de dicha casilla. Esa era la única idea que se me había ocurrido para realizar la disticion entre casillas y ratón.

¿Me explico?

Lo que he conseguido es que funcione pero lo veo algo rudimentario no... Porque no guardo las cordenadas en si del draw sino del objeto creado en cuestión.

Código Javascript:
Ver original
  1. import java.awt.Graphics;
  2. import javax.swing.JComponent;
  3. import javax.swing.JFrame;
  4. /**
  5. *
  6. * @author Pacheco
  7. */
  8.  
  9. class Cuadricula extends JComponent{
  10.    
  11.     int height=0;
  12.     int width=0;
  13.     int cordenadax;
  14.     int cordenaday;
  15.    
  16.     public Cuadricula(int x,int y,int h,int w){
  17.  
  18.         cordenadax=x;
  19.         cordenaday=y;
  20.         height=h;
  21.         width=w;
  22.  
  23.         setBounds(x,y,h+1,w+1);
  24.    
  25.     }
  26.  
  27. @Override
  28.  
  29. public void paintComponent (Graphics g){
  30.     super.paintComponent(g);
  31.     g.drawRect(0,0,width,height);
  32. }
  33. }
  34.  
  35. class IconosVI {
  36.    
  37.     public static void main (String [] args){
  38.  
  39.     JFrame ventana=new JFrame("V1");
  40.     ventana.setSize(400, 400);
  41.  
  42.  
  43.  
  44.     Cuadricula casillas[] = new Cuadricula[5];
  45.     casillas[1] = new Cuadricula(0, 0,60,60);
  46.     casillas[3] = new Cuadricula(60, 60,20,20);
  47.  
  48.     System.out.print(casillas[3].cordenadax+" ");
  49.     System.out.print(casillas[3].cordenaday);
  50.  
  51.     System.out.println();
  52.  
  53.     System.out.print(casillas[1].cordenadax+" ");
  54.     System.out.print(casillas[1].cordenaday);
  55.  
  56.    
  57.     ventana.getContentPane().add(casillas[3]);
  58.     ventana.getContentPane().add(casillas[1]);
  59.     ventana.getContentPane().setLayout(null);
  60.     ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  61.     ventana.setVisible(true);
  62. }
  63. }

¿Esta bien? ¿O hay una mejor manera de hacerlo?

Muchísimas gracias :D.

Última edición por Pacheco_1990_2; 13/05/2012 a las 04:22