我有一个包含用户界面和以下事件处理程序的主类。
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);
}
Passenger和Flock是单独的类,在为Passenger实例创建每个实例和调用方法后,我试图将生成的实例添加到名为canvas的Pane中。
以下是Passenger的构造函数:
public class Passenger extends Circle {
protected Point location = new Point(0,0);
private int currentTheta;
public Color color;
protected static Dimension map = new Dimension( 500, 500 );
private double currentSpeed;
private int maxTurnTheta;
static Circle ball8 = new Circle(5, Color.BROWN);
Passenger(int x, int y, int theta, Color passengerColor, Circle ball) {
location.x = x;
location.y = y;
currentTheta = theta;
color = passengerColor;
ball8 = ball;
}
对于Flock:
Flock() {
passengers = new Vector(40,1);
}
我已将Passenger作为Circle的扩展,并将一个圆圈作为构造函数的一部分实现,以尝试使其与主类中的Pane命名画布兼容。
flock类包含各种方法,用于控制从Passenger类创建的对象的移动。
我的问题是,是否有任何方法可以将窗格/乘客对象添加到窗格作为节点,如果没有,是否有另一种方法可以添加包含视觉元素(如形状)但也包含其他方法的对象除了javafx场景的形状的基本构造函数之外。
由于