JavaFx在画布上绘制自定义对象

JavaFx在画布上绘制自定义对象,javafx,canvas,Javafx,Canvas,有没有办法从画布上的自定义类中绘制对象 现在我正在画布上绘制GraphicsContext形状(fillOval()和fillRect()。 我正在考虑为椭圆和矩形创建一个类,我可以提供一些规格(大小和颜色),以便在以后的过程中进行测试 例如,当我在画布上点击一个特定的椭圆形时,我想检测它的颜色。所以我认为这应该是一个独特的对象 或者这是完全错误的,有没有办法在GraphicsContext形状上实现这一点 现在我在画布上画了一个椭圆形 GraphicsContext gc = view.get

有没有办法从画布上的自定义类中绘制对象

现在我正在画布上绘制GraphicsContext形状(fillOval()和fillRect()。 我正在考虑为椭圆和矩形创建一个类,我可以提供一些规格(大小和颜色),以便在以后的过程中进行测试

例如,当我在画布上点击一个特定的椭圆形时,我想检测它的颜色。所以我认为这应该是一个独特的对象

或者这是完全错误的,有没有办法在GraphicsContext形状上实现这一点

现在我在画布上画了一个椭圆形

GraphicsContext gc = view.getCanvas().getGraphicsContext2D();
gc.setFill(color);
gc.fillOval(x + circOffset, y + circOffset, diameter, diameter);
我会创建一个椭圆形类,例如:

public class Oval {
private Color color;
private int diameter;

public Oval(Color color, Diameter diameter) {
    this.color = color;
    this.diameter = diamter;
}
我可以用任何方式在画布上从我自己的类中绘制一个椭圆形实例吗?
或者画布不适合这样做?

您无法调用类似于
gc.fillShape(yourOval)
的东西。但是您可以在
Oval
类中定义一个
draw(GraphicsContext)
方法,用于从其状态绘制椭圆。(或者根据应用程序的设计,为该绘制方法找到一个更合适的位置)。您应该改用场景图。