グリッドレイアウトのあるJPanelがあります。グリッドの「セル」に、さまざまな要素(JButtonなど)を配置できます。それに問題はありません。しかし、今、いくつかのセルに塗りつぶした円を入れたいと思います。また、ActionListenerをこれらのサークルに関連付けたいと思います。より詳細には、円をクリックすると、現在のセルから消えて別のセルに表示されます。 Javaでどうすればよいですか? Swingを使用しています。
_public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
// Assume x, y, and diameter are instance variables.
Ellipse2D.Double circle = new Ellipse2D.Double(x, y, diameter, diameter);
g2d.fill(circle);
...
}
_
PaintComponentに関するいくつかのドキュメントがあります( link )。
JPanelでそのメソッドをオーバーライドし、上記のコードスニペットと同様の操作を行う必要があります。
ActionListenerで_x, y, diameter
_を指定し、repaint()
を呼び出す必要があります。
/***Your Code***/
public void paintComponent(Graphics g){
/***Your Code***/
g.setColor(Color.RED);
g.fillOval(50,50,20,20);
}
g.fillOval(x-axis,y-axis,width,height);