I'm trying to make a Chess Game, I'm stuck with this:
I create a bunch of panels each one has a label that has an icon (piece icon) with a loop for every panel to represent a case in the game. How can I delete an icon from the last position after the user drags the piece to a new position?
import ma.jerroudi.cheesegame.bouard.Bouard;
import ma.jerroudi.cheesegame.bouard.Case;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
public class CheeseGameGui extends JFrame {
Point prevPt;
Point currentPt;
public CheeseGameGui() {
Bouard bouard = new Bouard();
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent eP) {
prevPt = eP.getPoint();
System.out.println(" x: " + eP.getX() + " y: " + eP.getY());
System.out.println("tab[" + (int) prevPt.getX() / 50 + "] [" + (int) prevPt.getY() / 50 + "]");
}
@Override
public void mouseReleased(MouseEvent eR) {
currentPt = eR.getPoint();
System.out.println(" x: " + eR.getX() + " y: " + eR.getY());
bouard.caseChange((int) prevPt.getY() / 50, (int) prevPt.getX() / 50, (int) currentPt.getY() / 50, (int) currentPt.getX() / 50);
System.out.println("piece name : " + bouard.getCase((int) currentPt.getY() / 50, (int) currentPt.getX() / 50).getSymbol());
}
});
this.setTitle("jeroudi cheese game");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon image = new ImageIcon("logo.jpg");
this.setIconImage(image.getImage());
for (int i = 0; i <= Bouard.MAX_SIZE; i++) {
for (int j = 0; j <= Bouard.MAX_SIZE; j++) {
JPanel mypanel = new JPanel();
this.add(mypanel);
JLabel labelImg = new JLabel();
int xIndice = j * 50;
int yIndice = i * 50;
mypanel.setBounds(xIndice, yIndice, 50, 50);
mypanel.setBorder(BorderFactory.createLineBorder(Color.green));
ImageIcon pieceImg = new ImageIcon(new ImageIcon(bouard.getCase(i, j).getPiecePhat()).getImage().getScaledInstance(50, 50, Image.SCALE_DEFAULT));
labelImg.setIcon(pieceImg);
mypanel.add(labelImg);
this.getContentPane().add(mypanel);
}
}
setSize(450, 450);
setLayout(null);
this.setUndecorated(true);
setVisible(true);
}
}