Je pense que ta méthode paint ne marche pas à cause de ton attribut coord (d'ailleurs je ne vois pas à quoi il sert).
Essai de remplacer :
g.drawImage(pierreB,coord.height,coord.width,25,25,panGob);
par :
g.drawImage(pierreB,0,0,25,25,panGob);
Et tu dis faire disparaitre et reapparaitre ta piere avec la méthode paint, je ne vois pas ou (à moin que ce soit la méthode paint de ta table de jeu).
Et perso je n aurai pas fait comme ca. Je trouve l'idée de placer tous les pions à l'avance un peu bizard. Il suffit de cadriller ton plateau de jeux et de placer une pierre sur le carreau ou tu as cliqué, c pas plus compliqué que ca.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class JeuxDeGo extends JFrame{
public static final int PL_WIDTH = 1000;
public static final int PL_HEIGHT = 1000;
public static final int P_WIDTH = 100;
public static final int P_HEIGHT = 100;
public static final int PLAYER1 = 0;
public static final int PLAYER2 = 1;
JPanel plateau = new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
for (int i=1; i<PL_WIDTH/P_WIDTH; i++){
g.drawLine(0,i*P_HEIGHT,PL_WIDTH,i*P_HEIGHT);
g.drawLine(i*P_WIDTH,0,i*P_WIDTH,PL_HEIGHT);
}
}
};
int player = PLAYER1;
public JeuxDeGo() {
super("JeuxDeGo");
plateau.setLayout(null);
plateau.setSize(PL_WIDTH,PL_HEIGHT);
plateau.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
x = x - (x%P_WIDTH);
y = y - (y%P_HEIGHT);
Pierre p = new Pierre();
p.setLocation(x,y);
if (JeuxDeGo.this.player == PLAYER1)
p.setColor(Color.WHITE);
else
p.setColor(Color.BLACK);
JeuxDeGo.this.player = (JeuxDeGo.this.player+1)%2;
JeuxDeGo.this.plateau.add(p);
JeuxDeGo.this.plateau.repaint();
}
});
this.getContentPane().add(plateau);
}
public static void main (String arg[]) {
JeuxDeGo t = new JeuxDeGo();
t.setSize(PL_WIDTH,PL_HEIGHT);
t.setVisible(true);
}
}
class Pierre extends JLabel {
Color c;
public Pierre() {
super();
setSize(JeuxDeGo.P_WIDTH,JeuxDeGo.P_HEIGHT);
}
public void setColor(Color _c) {
c = _c;
}
public void paint(Graphics g) {
g.setColor(c);
g.fillOval(0,0,JeuxDeGo.P_WIDTH,JeuxDeGo.P_HEIGHT);
}
} |
Partager