我有一个带有网格布局的JPanel。在网格的“单元”中,我可以放置不同的元素(例如JButtons)。没问题。但是现在我想在某些单元格中添加一个实心圆。我也想将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()

07-24 09:18