有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JavaFX TreeTableView节点箭头停止行选择

我有一个JavaFX应用程序,使用JFX8使用TreeTableView

有没有办法阻止TreeTableView在Disclosure节点箭头区域拦截鼠标点击,即使该行是一片叶子(即没有子节点),因此没有Disclosure节点展开箭头?当前的行为似乎是在该行最左边拦截这些鼠标点击,尽管我认为用户会希望选中该行,因为没有公开节点

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);
    }
}

共 (0) 个答案