我发现在我的应用程序中的视图之间切换似乎有点慢(按钮是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,一个标签和一个按钮......看起来性能可能会好得多。
上面的代码是否有遗漏或有任何问题?