JavaFX界面跳转
界面跳转,很常见的一个功能,在桌面程序中,可以多窗口跳转,也可以在一个窗口中跳转。不同方式对应不同场景。下面简单介绍一下,JavaFX中单窗口界面跳转方式。
BorderPane 跳转
利用BorderPane的setCenter重新设置中心节点进行界面跳转。
好处是其他区域的节点不会更新,只会更新center中的节点,并且可以控制是每个页面是否可以重新加载,方便。
scene节点如下,在BorderPane的top中设置按钮事件,更新center。
fxml
<BorderPane prefHeight="200.0" prefWidth="200.0" fx:id="container">
<top>
<HBox alignment="CENTER" spacing="20.0" BorderPane.alignment="CENTER">
<children>
<Button mnemonicParsing="false" text="首页" onAction="#toHome" />
<Button mnemonicParsing="false" text="文件" onAction="#toFile"/>
<Button mnemonicParsing="false" text="设置" onAction="#toSetting"/>
</children>
<padding>
<Insets bottom="10.0" top="10.0" />
</padding>
</HBox>
</top>
<center>
</center>
</BorderPane>
controller
public class JumpController {
public BorderPane container;
public void initialize() {
URL resource = getClass().getResource("/fxml/jump/home.fxml");
try {
setCenter(resource);
} catch (IOException e) {
e.printStackTrace();
}
}
private void setCenter(URL url) throws IOException {
FXMLLoader loader = new