我有一个 JPanel,我为其设置了一些图像作为背景。我需要在图像顶部画一堆圆圈。现在,圆将基于某个坐标 x,y 进行定位,并且大小将基于某个整数大小。这就是我的类(class)。
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
class ImagePanel extends JPanel {
private Image img;
CircleList cList; //added this
public ImagePanel(Image img) {
this.img = img;
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
cList = new CircleList(); //added this
}
public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, null);
cList.draw(null); //added this
}
}
我怎样才能创建一些可以执行此操作的方法?
最佳答案
您的方法可以与此类似,其中您使用类 CircleList
来保存所有圆和绘图例程:
class CircleList
{
static class Circle
{
public float x, y, diameter;
}
ArrayList<Circle> circles;
public CirclesList()
{
circles = new ArrayList<Circle>();
}
public void draw(Graphics2D g) // draw must be called by paintComponent of the panel
{
for (Circle c : circles)
g.fillOval(c.x, c.y, c.diameter, c.diameter)
}
}
关于java - 如何在JPanel上画圆? Java 2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1836440/