java - 如何在JPanel上画圆? Java 2D

标签 java user-interface swing java-2d

我有一个 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/

相关文章:

java - java中的monitor什么时候释放

java - 从java运行sqlplus脚本的简单方法

java - BufferedWriter 不会抛出任何错误,但文件为空

java - 多个 GUI 之间的连接

html - 使用 CSS3 设计导航菜单

java - JScrollPane 多行中的 JTextArea

java - 访问 gridLayout 网格

JavaFX 和 GUI 线程 : Change button text from Thread

java - JPanel 内的 JPanel

Java:如何防止 Canvas 在添加到 JFrame 时调整大小?