How to disable or change the addition of TreeCell in TreeView

Environment: JDK 7u75, Windows 8.1 x64, JavaFX2.2

Code example:

public class TreeViewSample extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) throws MalformedURLException { primaryStage.setTitle("Tree View Sample"); TreeItem<String> rootItem = new TreeItem<String>("RootNode"); for (int i = 1; i < 5; i++) { TreeItem<String> item = new TreeItem<String>("SubNode" + i); rootItem.getChildren().add(item); item.getChildren().add(new TreeItem<String>("SubSubNode" + i + "" + i)); } rootItem.getChildren().add(new TreeItem<String>("SecondRootNode")); TreeView<String> tree = new TreeView<String>(rootItem); StackPane root = new StackPane(); root.getChildren().add(tree); Scene scene = new Scene(root, 300, 250); scene.getStylesheets().add((new File("../css/styletest.css").toURI()).toURL().toString()); primaryStage.setScene(scene); primaryStage.show(); } } 

CSS

 .tree-cell { -fx-skin: "com.sun.javafx.scene.control.skin.TreeCellSkin"; -fx-background-color: -fx-control-inner-background; -fx-padding: 0.25em; /* 3 */ -fx-text-fill: -fx-text-inner-color; -fx-indent: 10; } .tree-cell .label { -fx-padding: 0.0em 0.0em 0.0em 0.25em; /* 0 0 0 3 */ } .tree-cell .tree-disclosure-node { -fx-padding: 4 2 4 8; -fx-background-color: transparent; } .tree-cell .tree-disclosure-node .arrow { -fx-background-color: -fx-mark-color; -fx-padding: 0.333333em; /* 4 */ -fx-shape: "M 0 -4 L 8 0 L 0 4 z"; } 

was

We need to remove all the space and arrows for all nodes. Modified CSS:

 .tree-cell { -fx-skin: "com.sun.javafx.scene.control.skin.TreeCellSkin"; -fx-background-color: -fx-control-inner-background; -fx-padding: 0px; -fx-text-fill: -fx-text-inner-color; -fx-indent: 0px; } .tree-cell .label { -fx-padding: 0.0em 0.0em 0.0em 0.0em; } .tree-cell .tree-disclosure-node { -fx-padding: 0px; -fx-background-color: transparent; } .tree-cell .tree-disclosure-node .arrow { -fx-background-color: -fx-mark-color; -fx-padding: 0.0em; } 

enter image description here

As you can see, there are no indents and indents for all nodes except leaves.

And the question is how to remove / change this add-on?

+6
source share

Source: https://habr.com/ru/post/982623/


All Articles