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
| public class Pion extends JPanel {
public Pion(Color color) {
setOpaque(false);
setForeground(color);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(getForeground());
// le cercle s'étend sur toute la surface : si tu commentes la ligne suivante et décommente celle juste après, le cercle sera plus petit que la surface disponible
g.fillOval(0, 0, getWidth(), getHeight());
//g.fillOval(getWidth()/10, getHeight()/10, getWidth()-getWidth()/5, getHeight()-getHeight()/5);
}
public static void main(String[] args) {
int nb=10;
JFrame frame = new JFrame("Démo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new OverlayLayout(frame.getContentPane()));
// le dammier
JPanel dammier = new JPanel(new GridLayout(0,nb));
for(int i=0; i<nb; i++) {
for(int j=0; j<nb; j++) {
JPanel caseDammier = new JPanel();
if ( i%2==j%2 ) { // cases en quinconce
caseDammier.setBackground(Color.WHITE);
}
else {
caseDammier.setBackground(Color.BLACK);
}
dammier.add(caseDammier);
}
}
JPanel panel = new JPanel(new GridLayout(0,nb));
panel.setOpaque(false);;
for(int i=0; i<nb; i++) {
for(int j=0; j<nb; j++) {
if ( i%2==j%2 ) { // pions en quinconce
panel.add(new Pion(Color.RED));
}
else {
panel.add(new Pion(Color.BLUE));
}
}
}
// on ajoute les panels dans le sens inverse (ceux du dessus en premier)
frame.add(panel);
frame.add(dammier);
frame.setSize(600, 600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
} |
Partager