如何在JavaFx中更改Tab时调用方法?

问题描述 投票:0回答:1

好吧,这就是我想要做的:我有一个名为'SettingsPage'的页面。现在,在此页面中,我有一个带有3个标签的tabPane;用户,按钮和销售。按钮和用户都有表,在用户查看之前,表中都需要填充数据。当我第一次制作程序时,我只是使用“初始化”方法在“ SettingsPage”的开头填充用户表。但是,由于我现在开始尝试填充按钮表,因此遇到内存错误,因为现在有太多数据无法同时加载。

因此,我对此的一个好的解决方案是使Event方法在打开某个选项卡时被调用。我正在使用SceneBuilder atm,这似乎等效于onSelectionChanged,但是我似乎无法使用它,因为您将使用'methodEg(ActionEvent event)...'。所以我的问题是,如何确保某个选项卡打开时将调用一个方法。

例如,单击'buttonTab'时,将调用'populateButtonTable'方法。

javafx tabs listener fxml
1个回答
0
投票

答案是以下代码:

[如果有人问为什么我不使用.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
                    }      
                }
             }
    );
© www.soinside.com 2019 - 2024. All rights reserved.