Buenas, estoy tratando de hacer un juego de ajedrez, y lo primero que hago es inicializar el tablero, al principio lo hacia con arreglo de JPanel, pero luego pense hacerlo con un arreglo de una clase que hereda a JPanel, bueno la cuestion es que antes, si me salia todo el cuadro completo del ajedrez cuando usaba el arreglo de JPanel, pero cuando lo cambie por la otra clase:"cuadro", todos los paneles me salen sobrepuestos.
Esta es la clase original, la que al compilar si me muestra el tablero completo.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class tablero1
extends JFrame {
public tablero1()
{
contenedor=getContentPane();
setSize(600,600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pintarCuadros();
}
public void pintarCuadros()
{
for(int x=0;x<8;x++)
{
for(int y=0;y<8;y++)
{
if(x%2==0)
{
if(y%2!=0)
{
Cuadro
[x
][y
].
setBackground(Color.
BLACK); contenedor.add(Cuadro[x][y]);
}
else
{
Cuadro
[x
][y
].
setBackground(Color.
WHITE); contenedor.add(Cuadro[x][y]);
}
}
else
{
if(y%2==0)
{
Cuadro
[x
][y
].
setBackground(Color.
BLACK); contenedor.add(Cuadro[x][y]);
}
else
{
Cuadro
[x
][y
].
setBackground(Color.
WHITE); contenedor.add(Cuadro[x][y]);
}
}
}
}
}
}
Esta es la clase principal que instancia al JFrame:
public class test
{
public static void main
(String[] args
) {
tablero1 gui= new tablero1();//pra probar con al otra clase, cambiar tablero1 por Tablero
gui.setVisible(true);
}
}
Y esta es la otra clase que hereda a JPanel( con la que pasa el problema)
import javax.swing.*;
import java.awt.*;
public class cuadro
extends JPanel {
private int Y;
private int X;
boolean ocupado;
private int pieza;
public cuadro(int x,int y)
{
this.setLayout(null);
X=x;
Y=y;
}
public int getX()
{
return X;
}
public int getY()
{
return Y;
}
public void setX(int x)
{
X=x;
}
public void setY(int y)
{
Y=y;
}
}
y Esta es la clase que usa a cuadro(la clase que hereda a JPanel.La que me muetra el tablero con un solo cuadro, superpuestos a los siguientes.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Tablero
extends JFrame {
private cuadro[][] Cuadro;
public Tablero()
{
this.setLayout(null);
contenedor=getContentPane();
setSize(600,600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pintarCuadros();
}
public void pintarCuadros()
{
Cuadro=new cuadro[8][8];
for(int x=0;x<8;x++)
{
for(int y=0;y<8;y++)
{
if(x%2==0)
{
if(y%2!=0)
{
Cuadro[x][y]=new cuadro(x,y);
Cuadro
[x
][y
].
setBackground(Color.
BLACK); contenedor.add(Cuadro[x][y]);
}
else
{
Cuadro[x][y]=new cuadro(x,y);
Cuadro
[x
][y
].
setBackground(Color.
WHITE); contenedor.add(Cuadro[x][y]);
}
}
else
{
if(y%2==0)
{
Cuadro[x][y]=new cuadro(x,y);
Cuadro
[x
][y
].
setBackground(Color.
BLACK); contenedor.add(Cuadro[x][y]);
}
else
{
Cuadro[x][y]=new cuadro(x,y);
Cuadro
[x
][y
].
setBackground(Color.
WHITE); contenedor.add(Cuadro[x][y]);
}
}
}
}
}
}
Les estaria muy agradecidos si me pudieran ayudar a encontrar cual es el problema que pasa con la clase Tablero.