Как поменять Pane в javafx?

243
11 марта 2018, 22:48

Мой main класс:

public class Main extends Application {
    @FXML
    public Stage primaryStage;
    @FXML
    private BorderPane borderPane;
    @FXML
    private AnchorPane anchorPaneInMain;
    @FXML
    private AnchorPane anchorPaneInPersonOverview;
    @FXML
    private AnchorPane anchorPaneInSidebar;
    @Override
    public void start(Stage primaryStage) throws Exception {
        this.primaryStage = primaryStage;
        primaryStage.setTitle("Hello World");
        initMainLayout();
        initSidebarLayout();
        initRightWindow();
    }
//initialize Main stage
    public void initMainLayout() throws Exception {
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(getClass().getResource("main.fxml"));
        borderPane = (BorderPane) loader.load();
        Scene scene = new Scene(borderPane);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
//initialize sidebar frame
    public void initSidebarLayout() throws Exception {
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(getClass().getResource("sidebar.fxml"));
        anchorPaneInSidebar = (AnchorPane) loader.load();
        borderPane.setLeft(anchorPaneInSidebar);
    }
//initialize right frame when APP starting. When button clicked this frame must be changed on  initRightPersonOverview()
    public void initRightWindow() throws Exception {
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(getClass().getResource("RightWindow.fxml"));
        anchorPaneInMain = (AnchorPane) loader.load();
        borderPane.setCenter(anchorPaneInMain);
    }
//initialize right frame
    public void initRightPersonOverview() throws Exception {
        FXMLLoader loader = new FXMLLoader();
       loader.setLocation(getClass().getResource("PersonOverview.fxml"));
        anchorPaneInPersonOverview = (AnchorPane) loader.load();
        borderPane.setCenter(anchorPaneInPersonOverview);
    }
    public static void main(String[] args) {
        launch(args);
    }
}

Мой Controller, где создан метод для кнопки(которая находится в сайдбаре). Когда на нее нажимаешь должен меняться контейнер справа от сайдбара.

public class Controller {
    public void changeScene(ActionEvent actionEvent) throws Exception {
    }

Помогите пожалуйста, как это сделать. У меня получилось изменить всю сцену, а не отдельно правую часть, чтобы осталось все остальное

Answer 1

все сделал. Оказывается не уследил, что borderpane у меня не static и из-за этого лично у меня были все проблемы..

READ ALSO
Android 7.1.2 AsyncTask в свернутом приложении

Android 7.1.2 AsyncTask в свернутом приложении

Я создаю приложение и конекчу его с сервером через AsyncTask каждый определенный отрезок времени с помощью AlarmManager и проблема в том что на android...

183
Java class delimiter

Java class delimiter

Всем приветЯ относительно недавно начал изучать Java

204
Разработка android приложения на диплом [требует правки]

Разработка android приложения на диплом [требует правки]

Взял себе тему " тайм-менеджмент "

193
Как из Java пойти в BigData? [требует правки]

Как из Java пойти в BigData? [требует правки]

Добрый день ,являюсь Java программистом и хочу понемногу вникать в BigData )Не могу найти схему для изучения в Java более мене всё было Языка ДЖава...

210