estou fazendo um jogo de xadrez cada peça é uma classe que extend de PecaXadrez que extend de JLABEL
TEnho um metodo chamado adicionaPeca que adiciona as peças em um array de object
Minha duvida seria como eu faco para fzer aparecer as peças em cima do tabuleiro
meu codigo:
// cria tabuleiro
package Xadrez;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
public class Tabuleiro extends JPanel {
private static final long serialVersionUID = 1L;
public static Casa casas[][] = new Casa[8][8];
public Tabuleiro() {
setOpaque(false);
setLayout(new GridLayout(8, 8));
for (int y = 0; y < 8; y++) {
for (int x = 0; x < 8; x++) {
final Casa casa = new Casa(new Point(x, y));
this.add(casa);
casa.addMouseListener(new MouseListener() {
public void mouseExited(MouseEvent arg0) {
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseReleased(MouseEvent arg0) {
}
public void mousePressed(MouseEvent arg0) {
}
public void mouseClicked(MouseEvent e) {
Casa casaPressionada = (Casa) e.getSource();
casaPressionada.setBorder(new
LineBorder(Color.red,
5));
System.out.println("1="+casa);
System.out.println("2=" + casa.getPosicao());
if (casa.verifica == true) {
casa.verifica = false;
} else {
casaPressionada.setBorder(new LineBorder(null));
casa.verifica= true;
}
System.out.println("2="+casa.getPosicao().getX());
System.out.println("2="+casa.getPosicao().getY());
// System.out.println("Estou aqui");
}
});
casas[x][y] = casa;
if ((y % 2 == 0 && x % 2 == 0) || (y % 2 != 0 && x % 2 != 0))
casa.setBackground(Casa.CLARA);
else {
casa.setBackground(Casa.ESCURA);
}
// casa.adicionaPeca();
add(casa);
}
}
}
}
Presico muito fazer aparecer estas peças em cima do tabuleiro
nessa classe eu criei um metodo que adiciona peça em array de object
mas nao consigo fazer a chamada em tabuleiro ( ou seja na classe acima )
package Xadrez;
import java.awt.Color;
import java.awt.Point;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Casa extends JPanel {
private static final long serialVersionUID = 1L;
private JLabel peça = new JLabel();
private Point posicao = new Point();
public static boolean verifica;
private boolean selecionado = false;
public static int jogador;
Object[][] a = new Object[8][8];
public static final Color ESCURA = new Color(255, 250, 250);
public static final Color CLARA = new Color(000, 000, 000);
Rainha rainhaBranca = new Rainha("branco");
Rei reiBranco = new Rei("branco");
Bispo bispoBranco = new Bispo("branco");
Cavalo cavaloBranco = new Cavalo("branco");
Torre torreBranca = new Torre("branco");
Peao peaoBranco = new Peao("branco");
Rainha rainhaPreta = new Rainha("preto");
Rei reiPreto = new Rei("preto");
Bispo bispoPreto = new Bispo("preto");
Cavalo cavaloPreto = new Cavalo("preto");
Torre torrePreto = new Torre("preto");
Peao peaoPreto = new Peao("preto");
public Casa() {
this.adicionaPeca();
}
public Casa(Point posicao) {
this.posicao = posicao;
}
public Casa(boolean verifica) {
verifica = false;
}
public void adicionaPeca() {
for (int x = 0; x < 8; x++) {
for (int y = 0; y < 8; y++) {
if (((x == 0) && (y == 0)) || ((x == 7) && (y == 0))) {
a[x][y] = new Torre("branco");
}
if (((x == 1) && (y == 0)) || ((x == 6) && (y == 0))) {
a[x][y] = new Cavalo("branco");
}
if (((x == 2) && (y == 0)) || ((x == 5) && (y == 0))) {
a[x][y] = new Bispo("branco");
}
if ((x == 3) && (y == 0)) {
a[x][y] = new Rainha("branco");
}
if ((x == 4) && (y == 0)) {
a[x][y] = new Rei("branco");
}
}
}
// adiciona peao branco
for (int y = 1; y == 1;) {
for (int x = 1; x < 8; x++) {
a[x][y] = new Peao("branco");
}
}
// adiciona peao preto
for (int y = 6; y == 6;) {
for (int x = 0; x < 8; x++) {
a[x][y] = new Peao("preto");
}
}
}
public void setPeçaVazia() {
peça.setIcon(null);
}
public boolean isPeçaVazia() {
if (peça.getIcon() == null) {
return true;
} else
return false;
}
public Point getPosicaoAtual() {
for (int y = 0; y < 8; y++) {
for (int x = 0; x < 8; x++) {
if (Tabuleiro.casas[x][y] == this)
return new Point(x, y);
}
}
return null;
}
public boolean getSelecionada() {
return verifica;
}
public Point getPosicao() {
return posicao;
}
public void setPosicao(Point posicao) {
this.posicao.setLocation(posicao.getLocation());
}
}