我想要实现的是这样的:
public void paint(Graphics g) {
Graphics2D ga = (Graphics2D) g;
MyShape c = new MyShape();
ga.draw(c);
}
我希望MyShape
类包含绘制带有数字的圆圈所需的信息。
所以,我想我需要创建某种容器/组件,并在其中绘制我需要的内容(圆圈和数字),然后将其进一步传递给我上面粘贴的方法。
问题是我不知道要扩展什么类...以及故事的其余部分。
答案 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
。只需使用width
和height
的相同值构建它即可。有一个示例here,显示如何将Ellipse2D.Double
中的任意字形居中。
答案 2 :(得分:0)
你必须扩展类Shape,你必须在其中覆盖paintComponent,以便Graphics2D对象知道要绘制的内容。