有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的swing自定义形状

我想要实现的是这样的目标:

 public void paint(Graphics g) {
    Graphics2D ga = (Graphics2D) g;      
    MyShape c = new MyShape();
    ga.draw(c);
}

我希望MyShape类包含绘制一个包含数字的圆圈所需的信息

因此,我想我需要创建某种容器/组件,并在其中绘制我需要的东西(圆圈和数字),然后将其进一步传递给我上面粘贴的方法

问题是我不知道该扩展哪个类。。。故事的其余部分


共 (3) 个答案

  1. # 1 楼答案

    必须扩展类Shape,在类Shape中必须重写paintComponent,以便Graphics2D对象知道要绘制什么

  2. # 2 楼答案

    当然,您可以自己实现^{}接口,但是当您可以使用现有的子类(例如^{})时,就没有必要了。只要用widthheight的相同值构造它。有一个例子here展示了如何在Ellipse2D.Double中居中放置任意图示符

  3. # 3 楼答案

    一个形状就是:一个形状。圆是一种形状。矩形是一种形状。但里面有数字的圆不是形状。我猜你其实想要这样的东西:

    public class CircleWithNumberInside extends JComponent {
        @Override
        protected void paintComponent(Graphics g) {
            // TODO draw a circle, and draw a number inside it.
        }
    }