gpt4 book ai didi

Javafx 生成形状数组列表

转载 作者:行者123 更新时间:2023-12-01 10:45:45 24 4
gpt4 key购买 nike

我需要在 javafx 中生成具有不同属性的多个形状,但是当我运行该程序时,没有添加任何形状。任何正确方向的指导都会受到赞赏。我会创建单独的对象,但一旦超出范围,我需要不断删除并重新创建具有随机属性的对象。

package game

import java.util.ArrayList;
import javafx.animation.AnimationTimer;
import static javafx.application.Application.launch;
import javafx.scene.shape.Circle;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;




public class Game extends Application {

static ArrayList <Circle> circles = new ArrayList();

public static void main(String[] args) {
launch(args);
}

@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
Scene scene = new Scene(root,800, 600);
AnimationTimer timer = new AnimationTimer() {
@Override
public void handle(long now) {
spawnCircles();
}
};

timer.start();

root.getChildren().addAll(circles);
primaryStage.setScene(scene);
primaryStage.show();
}


void spawnCircles() {
if (circles.size() < 20) {
createCircle();
}
}

void createCircle() {
Circle circle = new Circle(Math.random() * 100, Color.RED);
circle.setCenterX(Math.random()* 800);
circle.setCenterY(Math.random()* 600);
circles.add(circle);
}


}

最佳答案

在你的start方法中,你将一个空的ArrayList添加到你的根 Pane 中,然后你的AnimationTimer将圆圈添加到你的ArrayList中。您如何期望它们神奇地出现在您的根 Pane 中。只需将它们添加到根 Pane 而不是 ArrayList 中,或者将其设置为 Group 而不是 ArrayList。

关于Javafx 生成形状数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34184357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com