web-dev-qa-db-ja.com

Javaで塗りつぶされた円を描くには?

グリッドレイアウトのあるJPanelがあります。グリッドの「セル」に、さまざまな要素(JButtonなど)を配置できます。それに問題はありません。しかし、今、いくつかのセルに塗りつぶした円を入れたいと思います。また、ActionListenerをこれらのサークルに関連付けたいと思います。より詳細には、円をクリックすると、現在のセルから消えて別のセルに表示されます。 Javaでどうすればよいですか? Swingを使用しています。

15
Roman
_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()を呼び出す必要があります。

29
Roman
/***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);
12
M_R_K