Javafx 2 在选项卡窗格中调用selectionModel().select()时执行NPE

Javafx 2 在选项卡窗格中调用selectionModel().select()时执行NPE,javafx-2,Javafx 2,这是我的密码: public class TabApp implements Initializable { @FXML Button newButton; @FXML TabPane tabPane = new TabPane(); public Tab newTab; private SingleSelectionModel<Tab> selectionModel; public int zQueryTabCount =

这是我的密码:

public class TabApp implements Initializable {

    @FXML
    Button newButton;
    @FXML
    TabPane tabPane = new TabPane();
    public Tab newTab;
    private SingleSelectionModel<Tab> selectionModel;
    public int zQueryTabCount = 2;

    @FXML
    public void handleNewButton(ActionEvent event) {
        System.out.println("new button is pressed");

        newTab = new Tab();

        selectionModel.select(newTab);

        newTab.setId("Query " + zQueryTabCount);

        newTab.setText("Query " + zQueryTabCount);

        tabPane.getTabs().add(tabPane.getTabs().size(), newTab);

        tabPane.getTabs().get(0).setClosable(false);

        newTab.setClosable(true);

        if (zQueryTabCount < 2) {

            tabPane.getTabs().get(0).setClosable(false);

        }

        zQueryTabCount++;

    }
}
public类TabApp实现可初始化{
@FXML
纽扣;
@FXML
TabPane TabPane=新建TabPane();
公共选项卡;
私有单选择模型选择模型;
公共int zQueryTabCount=2;
@FXML
公共无效handleNewButton(ActionEvent事件){
System.out.println(“按下新按钮”);
newTab=新选项卡();
selectionModel.select(newTab);
setId(“查询”+zQueryTabCount);
newTab.setText(“查询”+zQueryTabCount);
tabPane.getTabs().add(tabPane.getTabs().size(),newTab);
tabPane.getTabs().get(0).setClosable(false);
newTab.setClosable(真);
if(zQueryTabCount<2){
tabPane.getTabs().get(0).setClosable(false);
}
zQueryTabCount++;
}
}
我在
selectionModel.select(newTab)行获得
NullPointerException


我如何解决它

您的
selectionModel
变量未初始化,也未附加到选项卡窗格

使用下一个呼叫:

[...]
tabPane.getTabs().add(tabPane.getTabs().size(), newTab);

// should be called after tab has been added to TabPane
tabPane.getSelectionModel().select(newTab);

您的
selectionModel
变量未初始化,也未附加到选项卡窗格

使用下一个呼叫:

[...]
tabPane.getTabs().add(tabPane.getTabs().size(), newTab);

// should be called after tab has been added to TabPane
tabPane.getSelectionModel().select(newTab);