如何在JavaFX中使用多线程

时间:2019-02-09 08:10:23

标签: java multithreading javafx

我用run()方法创建了一个称为线程的类,该类应该打印一个矩形。我无法将此线程添加到窗格中,因为.add()不接受线程。如何将这个线程成功上传到我的JavaFX屏幕上? (其背后的想法是,生成的每个矩形都将像一个新的怪物,其中这些怪物会攻击障碍物,从而降低其生命值)。

public class Threads implements Runnable {

    @Override
    public void run(){
                Rectangle rect = new Rectangle((int) (Math.random() * 1000), (int) (Math.random() * 1000),100,100);
                rect.setFill(Color.color(Math.random(), Math.random(), Math.random()));
            }      
}

public class SquareThreads extends Application {

    @Override
    public void start(Stage primaryStage) {


        Pane root = new Pane();
        Thread t1 = new Thread(new Threads ());
        t1.start();
        root.getChildren().add(t1);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

1 个答案:

答案 0 :(得分:0)

假设您不想像本previous question中那样使用JavaFx动画工具,则可以让线程在后台创建矩形,并让GUI在创建新矩形时做出响应:

overflow

enter image description here