Я пытаюсь обновить центральный узел BorderPane, используя FXML.Я создал VBox слева с кнопками, и при нажатии они должны обновлять центральный узел, однако центральный узел не обновляется.Может кто-то пролить свет на то, что я делаю неправильно?
Я знаю, что события кнопок работают (они печатают на экран usiong println), но он не будет обновлять пользовательский интерфейс.
Корневые узлы.fxml (BorderPane):
<?import javafx.scene.layout.BorderPane?>
<BorderPane xmlns:fx="http://javafx.com/fxml" fx:id="rootPane">
<left>
</left>
<center>
</center>
</BorderPane>
Меню
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Button?>
<VBox fx:controller="" xmlns:fx="http://javafx.com/fxml" >
<children>
<Button text="Dashboard" fx:id="dashboardButton" onAction="#dashboardButtonEvent" />
<Button text="Sales" fx:id="salesButton" onAction="#salesButtonEvent" />
</children>
</VBox>
Контроллер Menu
public class MenuController implements Initializable {
@FXML
private BorderPane rootPane;
@FXML
private Button dashboardButton; //same name as in the menu.fxml file
@FXML
private Button salesButton; //same name as in the menu.fxml file
@FXML
private void dashboardButtonEvent(ActionEvent event) {
try {
VBox dashboard = FXMLLoader.load(getClass().getResource("../../../fxml/dashboard.fxml"));
rootPane = FXMLLoader.load(getClass().getResource("../../../fxml/root.fxml"));
rootPane.setCenter(dashboard);
} catch (IOException e) { System.out.println(e); }
}
@FXML
private void salesButtonEvent(ActionEvent event) {
try {
VBox sales = FXMLLoader.load(getClass().getResource("../../../fxml/sales.fxml"));
rootPane = FXMLLoader.load(getClass().getResource("../../../fxml/root.fxml"));
rootPane.setCenter(sales);
} catch (IOException e) { System.out.println(e); }
}
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
}
}
Я предполагаю, что я иду не так, как ясобираемся назначить корневую панель, используя rootPane = FXMLLoader.load (getClass (). getResource ("../../../ fxml / root.fxml")) ;.Если это так, как мне получить текущее rootPane из существующей сцены?