Ich mach gerade meine ersten Schritte mit der cellFactory von TreeView und ich frag mich, wieso die Items nicht mehr richtig ausgeblendet ("hide") werden, wenn man auf den Pfeil nebe dem Elternelement klickt... ich vermute, ich hab da was nicht richtig implementiert?
Java:
package com.test;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TreeCell;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Callback;
public class MainWindow extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 300);
TreeView tree = new TreeView();
tree.setCellFactory(new Callback<TreeView<String>, TreeCell<String>>() {
@Override
public TreeCell<String> call(TreeView<String> arg0) {
// TODO Auto-generated method stub
TreeCell<String> cell = new TreeCell<String>() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if(item != null) {
setGraphic(getTreeItem().getGraphic());
setText("Iten name");
}
}
};
return cell;
}
});
TreeItem<String> rootItem = new TreeItem<String>("root");
TreeItem<String> child = new TreeItem<String>("child");
TreeItem<String> child2 = new TreeItem<String>("child of child");
rootItem.getChildren().add(child);
rootItem.setExpanded(true);
child.getChildren().add(child2);
child.setExpanded(true);
tree.setRoot(rootItem);
root.getChildren().add(tree);
primaryStage.setScene(scene);
primaryStage.show();
}
}