Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Tablero

Hola, estoy aquí de nuevo molestando ;(

Estoy aprendiendo interfaz de usuario desde código (sin usar la Paleta de diseño que nos ofrece Netbeans). Estoy intentanto replicar el juego Batalla Naval.

A la hora de diseñar la tabla, me sale todo bien, pero no se como convertirlo en celdas cada recuadro diseñado.

Aqui mi codigo de la tabla:

class Tabla extends JPanel {

private static final int DIMENSION = 15;
public static final int MAXIMO = 500;
private final int COSTADO = MAXIMO / DIMENSION;

@Override
public void paintComponent(Graphics g) {
Graphics2D pantalla = (Graphics2D) g;
int y = 0;
for (int i = 1; i <= DIMENSION; i++) {
int x = 0;
for (int j = 1; j <= DIMENSION; j++) {
Rectangle2D.Float r = new Rectangle2D.Float(x, y, COSTADO, COSTADO);
pantalla.setColor(Color.GREEN);
pantalla.fill(r);
pantalla.setColor(Color.BLACK);
pantalla.setStroke(new BasicStroke(1.0f));
pantalla.draw(r);
x += COSTADO;
}
y += COSTADO;

}
}

Me da como resultado una tabla dividida 15x15 cuadritos pequeños, pero ahora me gustaría separar estos pequeños cuadros en celdas. ¿Cómo sería posible esto?

Prueba así, a ver si te sirve:

class Tabla extends JPanel {

private static final int DIMENSION = 15;
public static final int MAXIMO = 500;
private final int COSTADO = MAXIMO / DIMENSION;
private final Rectangle2D[][] celdas = new Rectangle2D[DIMENSION][DIMENSION];


@Override
public void paintComponent(Graphics g) {
Graphics2D pantalla = (Graphics2D) g;
int y = 0;
for (int i = 1; i <= DIMENSION; i++) {
int x = 0;
for (int j = 1; j <= DIMENSION; j++) {
Rectangle2D.Float celda = new Rectangle2D.Float(x, y, COSTADO, COSTADO);
pantalla.setColor(Color.GREEN);
pantalla.fill(celda);
pantalla.setColor(Color.BLACK);
pantalla.setStroke(new BasicStroke(1.0f));
pantalla.draw(celda);
celdas[i-1][j-1] = celda;
x += COSTADO;
}
y += COSTADO;

}
}
}

mayo 9, 2014 | Registered Commenterchoces

Fantástico una vez más Choces. Muchas gracias ;)