Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con JPanel y cuadrícula

Estas en el tema de Problema con JPanel y cuadrícula en el foro de Java en Foros del Web. Rapido y conciso, Tengo un JPanel en el que quiero dibujar una cuadricula de X filas por Y columnas que le paso al constructor del ...
  #1 (permalink)  
Antiguo 27/05/2013, 13:36
Avatar de Makros  
Fecha de Ingreso: mayo-2013
Ubicación: Asturias
Mensajes: 6
Antigüedad: 11 años, 7 meses
Puntos: 0
Pregunta Problema con JPanel y cuadrícula

Rapido y conciso,

Tengo un JPanel en el que quiero dibujar una cuadricula de X filas por Y columnas que le paso al constructor del JPanel

Código:


Código Java:
Ver original
  1. public PanelEspacioCelular(int celulasX, int celulasY) {
  2.         this.celulasX = celulasX;
  3.         this.celulasY = celulasY;
  4.         espacio = new EspacioCelular(celulasX, celulasY);
  5.        
  6.         int filasPanel = celulasY * EspacioCelular.TAMCELULA + (EspacioCelular.TAMCELULA + 1);
  7.         int columnasPanel = celulasX * EspacioCelular.TAMCELULA + (EspacioCelular.TAMCELULA + 1);
  8.         /*Tamaño del JPanel*/
  9.         setPreferredSize(new Dimension(filasPanel, columnasPanel));
  10.         setBackground(Color.WHITE);
  11.     }
Al visualizarlo en la clase donde tengo la ventana principal consigo que me dibuje todas las celdas que le he indicado, pero las lineas siguen prolongandose. Utilizo la clase Graphics para dibujar lineas sobre el JPanel.

Código:


Código Java:
Ver original
  1. /**Dibujamos las lineas divisoria*/
  2.     public void paint(Graphics g) {
  3.         super.paint(g);
  4.         g.setColor(Color.BLACK);
  5.         int auxFila, auxColumna;
  6.        
  7.         //FILAS (Margen = EspacioCelular.TAMCELULA + 1).//
  8.         for (int i = 0; i <= espacio.getFilas(); i++) {
  9.             auxFila = i*(EspacioCelular.TAMCELULA + 1);
  10.             g.drawLine(EspacioCelular.TAMCELULA+1, auxFila, getHeight(), auxFila);
  11.         }
  12.        
  13.         //COLUMNAS (Margen = EspacioCelular.TAMCELULA + 1).
  14.         for (int j = 0; j <= espacio.getCols(); j++) {
  15.             auxColumna = j*(EspacioCelular.TAMCELULA + 1);
  16.             g.drawLine(auxColumna, EspacioCelular.TAMCELULA+1, auxColumna, getWidth());
  17.         }
  18.     }

Lo que quiero es que se corten al terminar la última de las filas y la ultima de las columnas respectivamente. No encuentro la manera.

¿Alguna ayuda?
  #2 (permalink)  
Antiguo 28/05/2013, 00:35
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Problema con JPanel y cuadrícula

No uses getHeight() ni getWidth(), usa en su lugar "cosas" similares a las que estás usando para el resto de coordenadas. Por ejemplo, para que las filas se corten al llegar al final, en vez de getWidth() usa numeroColumnas*(EspacioCelular.TAMCELULA+1).

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 28/05/2013, 01:02
Avatar de Makros  
Fecha de Ingreso: mayo-2013
Ubicación: Asturias
Mensajes: 6
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema con JPanel y cuadrícula

Genial, problema solucionado. No se por que por alguna extraña razon el getHeigh y el getWidth no furrulan. Mil gracias.

Ahora me surge un segundo problema añadido. Quiero añadirle al JPanel un ScrollBar para poder desplazarme por toda la cuadrícula. Por ejemplo, al definir una cuadrícula de 100x100 se me sale del tamaño de la ventana principal. Con el Scrollbar quiero poder moverme por la cuadricula.

Muchisimas gracias por la ayuda. Me ha servido de muy mucho.
  #4 (permalink)  
Antiguo 28/05/2013, 05:42
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Problema con JPanel y cuadrícula

Pues mete el panel en un JScrollPane. Asegúrate de que el método getPreferredSize() de tu panel devuelve el tamaño en pixels que ocupe la cuadrícula en total.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 28/05/2013, 05:58
Avatar de Makros  
Fecha de Ingreso: mayo-2013
Ubicación: Asturias
Mensajes: 6
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema con JPanel y cuadrícula

He cambiado la forma en que visualizaré la cuadrícula. Voy a poner una ventana de tamaño fijo y la cuadrícula se adaptará a la ventana. Más adelante quiero hacer un método que reduzca y aumente el tamaño de la cuadrícula.

¿Dejo el hilo abierto para futuras consultas?

Muchas gracias por la ayuda. =D

Etiquetas: cuadricula, grid, jpanel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:44.