如何在JavaFXTreeView中使某些节点加粗?

如何在JavaFXTreeView中使某些节点加粗?,java,user-interface,javafx,Java,User Interface,Javafx,如何在javaxtreeview中显示子节点为粗体的节点名称?(叶子节点应显示为非粗体)在树上使用单元工厂,根据显示的树项目是否为叶子,在其创建的树单元上设置CSS伪类的状态。然后,您可以使用一个外部css文件,该文件可以按照您喜欢的方式设置叶节点和非叶节点的样式 例如: import javafx.application.Application; import javafx.css.PseudoClass; import javafx.scene.Scene; import javafx.sc

如何在javaxtreeview中显示子节点为粗体的节点名称?(叶子节点应显示为非粗体)

在树上使用单元工厂,根据显示的树项目是否为叶子,在其创建的树单元上设置CSS伪类的状态。然后,您可以使用一个外部css文件,该文件可以按照您喜欢的方式设置叶节点和非叶节点的样式

例如:

import javafx.application.Application;
import javafx.css.PseudoClass;
import javafx.scene.Scene;
import javafx.scene.control.TreeCell;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class BoldNonLeafNodes extends Application {  
    @Override  
    public void start(Stage primaryStage) throws Exception {  
        final BorderPane uiRoot = new BorderPane();  

        TreeItem<Integer> root = createTreeItem(1);

        final TreeView<Integer> tree = new TreeView<>(root);  

        PseudoClass leaf = PseudoClass.getPseudoClass("leaf");
        tree.setCellFactory(tv -> {
            TreeCell<Integer> cell = new TreeCell<>();
            cell.itemProperty().addListener((obs, oldValue, newValue) -> {
                if (newValue == null) {
                    cell.setText("");
                } else {
                    cell.setText(newValue.toString());
                }
            });
            cell.treeItemProperty().addListener((obs, oldTreeItem, newTreeItem) -> 
                cell.pseudoClassStateChanged(leaf, newTreeItem != null && newTreeItem.isLeaf()));
            return cell ;
        });

        uiRoot.setCenter(tree);  

        final Scene scene = new Scene(uiRoot);  
        scene.getStylesheets().add("bold-non-leaf-nodes.css");

        primaryStage.setScene(scene);  
        primaryStage.setTitle(getClass().getSimpleName());  
        primaryStage.show();  
    }  

    private TreeItem<Integer> createTreeItem(int value) {
        TreeItem<Integer> item = new TreeItem<>(value);
        if (value < 10000) {
            for (int i=0; i<10; i++) {
                item.getChildren().add(createTreeItem(10*value+i));
            }
        }
        return item ;
    }

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

请扩大你的问题。展示你现在拥有的(包括代码),你想要达到的结果,以及你为解决问题所做的任何尝试。特别是,你所说的“顶级节点”是什么意思?根节点?根节点的直接子节点?树状视图中的前5行?
.tree-cell {
    -fx-font-weight: bold ;
}
.tree-cell:leaf {
    -fx-font-weight: normal ;
}