Java中的自定义形状

时间:2012-03-03 17:33:49

标签: java swing awt paintcomponent

我想要实现的是这样的:

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

我希望MyShape类包含绘制带有数字的圆圈所需的信息。

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

问题是我不知道要扩展什么类...以及故事的其余部分。

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

您当然可以自己实现Shape接口,但是您无需使用现有的子类,例如Ellipse2D。只需使用widthheight的相同值构建它即可。有一个示例here,显示如何将Ellipse2D.Double中的任意字形居中。

答案 2 :(得分:0)

你必须扩展类Shape,你必须在其中覆盖paintComponent,以便Graphics2D对象知道要绘制的内容。

相关问题