在TabPane中调用selectionModel()。select()时的NPE

时间:2012-09-18 12:59:23

标签: 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 = 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++;

    }
}

我在NullPointerException

行获得了selectionModel.select(newTab);

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您的selectionModel变量未初始化也未附加到TabPane。

改为使用下一个电话:

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

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