Как вызвать метод изменения вкладки в JavaFx? - PullRequest
0 голосов
/ 12 апреля 2020

Хорошо, вот что я пытаюсь сделать: у меня есть страница с именем «SettingsPage». Теперь на этой странице у меня есть панель вкладок с 3 вкладками; пользователи, кнопки и продажи. Кнопки и пользователи имеют таблицы, которые необходимо заполнить данными, прежде чем они будут просмотрены пользователем. Когда я впервые создавал программу, я просто использовал метод инициализации, чтобы заполнить пользовательскую таблицу при открытии «SettingsPage». Однако теперь, когда я начинаю пытаться заполнить таблицу кнопок, я сталкиваюсь с ошибкой памяти, потому что теперь слишком много данных для одновременной загрузки.

Итак, я думаю, что это хорошее решение было бы создать метод Event, который вызывается при открытии определенной вкладки. Я использую SceneBuilder atm, и то, что казалось его эквивалентом, было onSelectionChanged, однако я не могу использовать это, как если бы вы использовали 'methodEg (событие ActionEvent) ...'. Поэтому мой вопрос заключается в том, как можно обеспечить вызов метода при открытии определенной вкладки.

Например, при нажатии кнопки «TAB» вызывается метод «populateButtonTable».

1 Ответ

0 голосов
/ 13 апреля 2020

Ответом на этот вопрос был следующий код:

И если кто-нибудь спросит, почему я не использовал .isSelected () ... Я сделал, это по какой-то причине не сработало, но то, что у меня есть сделано ниже, значит, я не знаю ...

'' '

@FXML public void initialize(URL url, ResourceBundle rb){


   tabs.getSelectionModel().selectedItemProperty().addListener(
            new ChangeListener<Tab>() {
                @Override
                public void changed(ObservableValue<? extends Tab> ov, Tab t, Tab t1) 
                {                        
                    if (tabs.getSelectionModel().getSelectedItem() == ExampleTab)
                    {
                        //do whatever
                    }      
                }
             }
    );
...