如何在Java中绘制一个实心圆?

时间:2010-03-24 16:42:05

标签: java user-interface swing graphics geometry

我有一个带有网格布局的JPanel。在网格的“单元格”中,我可以放置不同的元素(例如JButtons)。没有问题。但现在我想在一些细胞中放一个圆圈。我还想将ActionListener与这些圈子联系起来。更详细地说,如果我单击圆圈,它将从当前单元格中消失并显示在另一个圆圈中。我怎么能用Java做呢?我正在使用Swing。

2 个答案:

答案 0 :(得分:29)

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()

答案 1 :(得分:11)

/***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);