Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2013, 13:36
Avatar de Makros
Makros
 
Fecha de Ingreso: mayo-2013
Ubicación: Asturias
Mensajes: 6
Antigüedad: 10 años, 11 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?