微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaFX TreeTableView Disclosure Node箭头停止行选择

如何解决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 举报,一经查实,本站将立刻删除。