所以基本上我正在尝试创建一个黑白棋游戏。首先,我创建了一个由按钮填充的板,并为它们附加了 ID,因此我可以在需要时访问它们。现在我正在尝试在每个按钮上绘制一个游戏块,但是我无法获取按钮的 getGraphics(),因为我读到这是一个坏主意并且还返回 null。请记住,我希望将所有实体分开:板、单元和部件,因为我使用 MVC 模式开发它。
板子.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);
}
细胞.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);
}
}
磁盘.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我应该如何重写我的代码,以便每个按钮上都有一个椭圆形。
提前致谢。