【发布时间】:2017-02-03 22:35:41
【问题描述】:
我正在为学校做作业,但我无法理解解决此问题所需的逻辑。我希望你们中的一些人能指出我正确的方向。
我有一些类可以绘制简单的形状:
根据分配,DrawingItem 下的每个延迟类都需要一个paint() 方法才能绘制独立于GraphicsContext 的特定(Oval、Spline 等)。对于Oval,我猜这个方法应该是这样的:
public void paint(Graphics g){
g.setColor(super.getColor());
g.drawOval(
(int) dw.getAnchor().getX(), (int) dw.getAnchor().getY(),
(int)this.width, (int)this.height
);`
}
扩展类图显示了一个接口IPaintable,我为每个形状创建了一个方法。 JavaFX 端 (DrawingTool) 实现了这个接口及其所有方法。这些方法需要形状对象作为参数。我使用这些方法在 javaFX 中绘制形状,还是椭圆示例:
strokeOval(
oval.getHeight(), oval.getWidth(), oval.getAnchor().getX(), oval.getAnchor().getY()
);
我的主要问题是:
- 形状子类中的
paint()方法是否朝着正确的方向前进?如果是,我如何从 JavaFX 端调用它们? - 如何在
Drawing和DrawingItem类中“实现”paint(paintable:IPaintable)方法?
【问题讨论】: