我发现在我的应用程序中的视图之间切换似乎有点慢(按钮是 JFXButtons 并且有一个“推送”动画,似乎什么都不是流畅的)。主要阶段是 BorderPane。我基本上有一个带有不同按钮的侧栏(BorderPane 中的左窗格),这些按钮将在 BorderPane 的中心加载一个 AnchorPane。在下面的代码中,Home.fxml 被加载到 BorderPane 的中心。
视图的切换在 MenuController(按钮侧边栏的控制器)中完成
按一个按钮时的代码如下:
@FXML
void homeAction(ActionEvent event) {
Runnable setHome = new Runnable() {
public void run() {
try {
root = Main.getRoot();
home = FXMLLoader.load(getClass().getResource("/views/Home.fxml"));
Platform.runLater(new Runnable() {
public void run() {
root.setCenter(home);
}
});
} catch (IOException e) {
System.out.println("Error loading Home.fxml");
e.printStackTrace();
}
}
};
Thread setHomeThread = new Thread(setHome);
setHomeThread.start();
}
加载的视图不执行任何操作,例如连接到数据库。它只显示一个空的 tableview、一个标签和一个按钮……而且性能似乎要好得多。
上面的代码有什么我遗漏或有什么问题吗?