Как нарисовать заполненный круг на 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);