Javafx 2 当使用Javafx选择一个特定选项卡时,如何执行某些操作

Javafx 2 当使用Javafx选择一个特定选项卡时,如何执行某些操作,javafx-2,javafx,Javafx 2,Javafx,当我的tabPane的一个选项卡被单击时,我正在尝试执行某些操作,我尝试使用Action Event,但它不起作用: public void tabPressClicked (ActionEvent event){ comboBoxPresYear.setVisible(true); lblPresYear.setVisible(true); } [编辑] 正确的方法是: tabPresentation.setOnSelectionChanged(new

当我的tabPane的一个选项卡被单击时,我正在尝试执行某些操作,我尝试使用Action Event,但它不起作用:

public void tabPressClicked (ActionEvent event){
        comboBoxPresYear.setVisible(true);
        lblPresYear.setVisible(true);
    }
[编辑]

正确的方法是:

tabPresentation.setOnSelectionChanged(new EventHandler<Event>() {
            @Override
            public void handle(Event t) {
                if (tabPresentation.isSelected()) {
                    comboBoxPresYear.setVisible(true);
                    lblPresYear.setVisible(true);
                }
            }
        });
tabPresentation.setOnSelectionChanged(新的EventHandler(){
@凌驾
公共无效句柄(事件t){
if(tabPresentation.isSelected()){
ComboxPresYear.setVisible(true);
lblPresYear.setVisible(true);
}
}
});

我不确定您想要做什么/您想要什么ActionEvent,但请尝试以下操作之一:

tabPane.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
    @Override
    public void changed(ObservableValue<? extends Number> ov, Number oldValue, Number newValue) {
        // do something...
    }
}); 
tabPane.getSelectionModel().selectedIndexProperty().addListener(新的ChangeListener()){
@凌驾

public void已更改(observeValue您可以使用
selectedItemProperty
selectedIndexProperty
,就像Puce所说的那样。这里是使用
selectedItemProperty
的解决方案,我认为这是更好的,因为您获得了selected
选项卡
项本身

tabPane.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Tab>() {

    @Override
    public void changed(ObservableValue<? extends Tab> observable, Tab oldTab, Tab newTab) {
        if(newTab == tabPresentation) {
            comboBoxPresYear.setVisible(true);
            lblPresYear.setVisible(true);}
        }
    });
tabPane.getSelectionModel().SelectEditeProperty().addListener(新的ChangeListener()){
@凌驾

改变公共空间(observeValue这不是最简单的方法吗

    tab.selectedProperty().addListener((observable, oldValue, newValue) -> {
        if (newValue) {
            comboBoxPresYear.setVisible(true);
            lblPresYear.setVisible(true);}
        }
    });

我需要的是,当我选择一个特定选项卡(tabPress)时,将一个组合框和一个标签设置为可见,只要将(newValue=yourSpecificTabNUmber){comboxPresyear.setVisible(true);lblPresYear.setVisible(true);}添加到已更改的方法:)你试过我提到的Tab.setOnSelectionChanged吗?这真的很好,因为我直接获得Tab项,不需要引用特定的选项卡编号,可能会发生变化。这是一个很棒的JavaFX8解决方案