在JavaFX中将自定义类的实例添加到窗格

在JavaFX中将自定义类的实例添加到窗格,java,javafx,Java,Javafx,我有一个主类,它包含用户界面和以下eventhandler public Pane canvas; menuBarItemH.setOnAction(e1 -> { Flock.SeparationRange = separateDistance; Flock.DetectionRange = detectDistance; Flock flock = new Flock(); for (int i=0; i < numberOfGreenPass

我有一个主类,它包含用户界面和以下eventhandler

public Pane canvas;
menuBarItemH.setOnAction(e1 -> {
    Flock.SeparationRange = separateDistance;
    Flock.DetectionRange = detectDistance;

    Flock flock = new Flock();

    for (int i=0; i < numberOfGreenPassengers; i++) {
        Passenger passenger = new Passenger(10, 10, 10, Color.BROWN, ball);
        passenger.setCenterX(10);
        passenger.setCenterY(10);
        passenger.setRadius(10);
        passenger.setSpeed( greenPassengerSpeed );
        passenger.setMaxTurnTheta( greenPassengerMaxTheta );
        flock.addPassenger(passenger);      

        canvas.getChildren().add(passenger);  
    }
对于Flock:

Flock() {
  passengers = new Vector(40,1);
}
我已经将Passenger作为Circle的一个扩展,并将Circle作为构造函数的一部分实现,以尝试使其与main类中名为canvas的窗格兼容

flock类包含用于控制从Passenger类创建的对象的移动的各种方法

我的问题是,是否有任何方法将flock/passenger对象作为节点添加到窗格中,如果没有,是否有另一种方法将包含视觉元素(如形状)的对象添加到javafx场景中,但除了形状的基本构造函数外,还包含其他方法


谢谢

您似乎从未设置过
乘客
对象的属性(例如
centerX
centerY
半径
,等等)。默认情况下,这些都将设置为零,因此您正在创建一个零半径圆。因此,当它被添加到窗格中时,您实际上不会看到任何内容。嗨,詹姆斯。当创建对象时,它们在主类中设置。在for循环中,我包括:乘客乘客=新乘客(10,10,10,Color.BROWN,ball);哪里我看不到您在任何地方实际设置了
centerX
centerY
radius
。(如果代码在那里,您需要发布它。)据我所见,这些值仅用于子类中定义的特定字段。例如,您可以执行
System.out.println(passenger.getRadius())
来验证半径是否为非零吗?但正如我刚才解释的,您添加到窗格中的圆的半径为零。运行该代码时,该代码起作用:我看到一个半径圆
10
位于
[10,10]
(显然,只有一个圆可见,因为它们都具有相同的位置和大小)。
Flock() {
  passengers = new Vector(40,1);
}