Javafx 2 当使用Javafx选择一个特定选项卡时,如何执行某些操作
当我的tabPane的一个选项卡被单击时,我正在尝试执行某些操作,我尝试使用Action Event,但它不起作用: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
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解决方案