Как нарисовать заполненный круг на Java?

У меня есть JPanel с сеткой. В "ячейках" сетки я могу поместить разные элементы (например, JButtons). С этим нет никаких проблем. Но теперь я хочу поместить заполненный круг в некоторые из ячеек. Я также хотел бы связать ActionListener с этими кругами. Более подробно, если я нажму на кружок, он исчезнет из текущей ячейки и появится в другом. Как я могу сделать это на Java? Я использую Swing.

Ответы

Ответ 1

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 (ссылка).

Вы должны переопределить этот метод в своем JPanel и сделать что-то похожее на фрагмент кода выше.

В своем ActionListener вы должны указать x, y, diameter и вызвать repaint().

Ответ 2

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