JavaFX TreeTableView Disclosure Node箭头停止行选择

问题描述

我有一个使用JFX8的TreeTableViews的JavaFX应用程序。

有没有一种方法可以阻止TreeTableViews在“披露节点”箭头区域内拦截鼠标单击,即使该行是叶子(即没有子级)并且因此也没有“披露节点”展开箭头?当前的行为似乎是在“行”的最左侧拦截这些鼠标单击,尽管我认为用户会希望选择该行,因为没有公开节点。

sammple image

请参见下面的示例...

public class TestTreeTableViewApplication extends Application {

    @Override
    public void start(Stage primaryStage) {
        AnchorPane anchorPane = new AnchorPane();
        anchorPane.setPrefWidth(600);
        anchorPane.setPrefheight(600);

        TreeTableView<String> treeTableView = new TreeTableView<>();
        TreeTableColumn<String,String> primaryColumn = new TreeTableColumn<>("Col1");
        primaryColumn.setPrefWidth(200);

        treeTableView.getColumns().add(primaryColumn);
        //Just to show some data in the column for test purposes...
        primaryColumn.setCellValueFactory(call -> new ReadOnlyStringWrapper(call.getValue().getValue()));

        treeTableView.setRoot(new TreeItem<>("Root"));
        for (int i = 0; i < 15; i++) {
            TreeItem<String> newChild = new TreeItem<>("1st Tier Test " + i);
            treeTableView.getRoot().getChildren().add(newChild);
            for (int j = 0; j < 3; j++) {
                TreeItem<String> newChild2 = new TreeItem<>("2nd Tier Test " + i);
                newChild.getChildren().add(newChild2);
            }
        }

        anchorPane.getChildren().add(treeTableView);

        Scene scene = new Scene(anchorPane,600,600);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)