En gros, j'essaie de créer un jeu de reversi. Tout d'abord, j'ai créé un tableau peuplé de boutons et j'y ai attaché des ID, afin de pouvoir y accéder par la suite si nécessaire. Maintenant, j'essaie de dessiner une pièce de jeu sur chacun des boutons, mais je ne peux pas getGraphics() du bouton car j'ai lu que c'était une mauvaise idée et que cela renvoyait également null. Gardez à l'esprit que je veux garder toutes mes entités séparées : le plateau, la cellule et la pièce, puisque je développe ceci en utilisant le modèle MVC.
board.java
import java.awt.GridLayout;
import javax.swing.JPanel;
public class Board extends JPanel {
private static final int sizeOfBoard = 8;
public Board() {
int id =0;
setLayout(new GridLayout(sizeOfBoard,sizeOfBoard));
for (int i = 0; i < sizeOfBoard; i++) {
for (int j = 0; j < sizeOfBoard; j++) {
Cell cell = new Cell(id++);
Disk disk = new Disk();
cell.add(disk);
add(cell);
}
}
setSize(600,500);
setVisible(true);
}
cell.java
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.Painter;
public class Cell extends JButton{
private int id;
private boolean taken;
private String colour;
private Painter painter;
public Cell(int id){
this.id = id;
}
public int getId(){
return id;
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
}
}
disk.java
import java.awt.Graphics;
import javax.swing.JComponent;
public class Disk extends JComponent{
@Override
public void paintComponent ( Graphics g ) {
super.paintComponent(g);
g.drawOval(50,50,50,50);
}
}
TL;DR Comment dois-je réécrire mon code pour qu'il y ait un ovale sur chaque bouton.
Merci d'avance.