我想在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);
}
}
答案 0 :(得分:0)
在JavaFX应用程序中,主要方法的目的(实际上是start
方法)仅用于初始化FXML和其他主要部分。大部分UI逻辑应该包含在Controller类中。
首先,您需要在控制器中定义一个动作处理程序。在线提供了许多教程,在Scenebuilder中这是一个相当简单的任务。谷歌是你最好的朋友。
对于动画,由于JavaFX不允许其运行主应用程序的JavaFX应用程序线程以外的线程修改其显示的内容,因此您必须使用javafx.animation
包中的类。请参阅Creating Transitions and Timeline Animation in JavaFX。