Canvas中的JavaFX可视化

时间:2017-01-17 05:19:00

标签: java canvas javafx

我想在javafx应用中的画布中设置排序算法的动画。首先,我在边界面板中拥有所有内容。在左侧部分,我有一个带有Vbox的滚动窗格,其中包含用于选择要设置动画的特定算法的菜单按钮。在中心部分,我有一个带有Canvas的Vbox,我想在其中设置可视化动画。我的问题是如何设置场景以在Canvas菜单按钮单击中为可视化设置动画?假设我有一个我想要在Canvas中制作动画的BubbleSort类。我可以通过Main或控制器完成此操作吗?我目前的主要内容如下:

    public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("views/HomeView.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 300, 275));
        root.getStylesheets().add("app/styling/css/styles.css");
        primaryStage.show();
    }


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

1 个答案:

答案 0 :(得分:0)

在JavaFX应用程序中,主要方法的目的(实际上是start方法)仅用于初始化FXML和其他主要部分。大部分UI逻辑应该包含在Controller类中。

首先,您需要在控制器中定义一个动作处理程序。在线提供了许多教程,在Scenebuilder中这是一个相当简单的任务。谷歌是你最好的朋友。

对于动画,由于JavaFX不允许其运行主应用程序的JavaFX应用程序线程以外的线程修改其显示的内容,因此您必须使用javafx.animation包中的类。请参阅Creating Transitions and Timeline Animation in JavaFX