這可能是一個解決方案
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.RenderingHints;
import javax.swing.Icon;
public class ColorIconRound implements Icon {
private int size;
private Paint color;
public ColorIconRound(int size, Paint color) {
this.size = size;
this.color = color;
}
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
Graphics2D g2d = (Graphics2D) g;
Paint op = g2d.getPaint();
g2d.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setPaint(color);
g2d.fillOval(x, y, size, size);
g2d.setPaint(op);
}
@Override
public int getIconWidth() {
return size;
}
@Override
public int getIconHeight() {
return size;
}
}
然後,只需將您的按鈕的圖標是這樣的:
board[temp][c].setIcon(new ColorIconRound(12,Color.WHITE));
如果你不喜歡它填補改變g2d.fillOval
到drawOval
在paintIcon metod中。
那麼,你可以做這樣的事情[this](http://stackoverflow.com/questions/15846937/painting-a-particular-button-from-a-grid-of-buttons/15847188#15847188)或者你可能只是使用圖片 – MadProgrammer
我還是很困惑><您提供的代碼在整個按鈕中的陰影恰好是圓形的,我試圖在網格中的一個彩色圓圈中點擊按鈕,我正在嘗試連接4場比賽。 – CodyVick
那麼?而不是使用'fillOval',使用'drawOval'。看看[2D圖形](http://docs.oracle.com/javase/tutorial/2d/)關於繪畫的更多細節 – MadProgrammer