JavaFX树表视图自定义单独的单元格

时间:2014-04-22 16:45:28

标签: javafx javafx-8 treetableview

在树状表视图中,有子项目又包含其他子项目。我需要自定义那些伪根项的某些单元格的文本。

有没有办法为这些项目分配css类/样式?

更新
好的,让它使用以下cellFactory:

treeTblColumnName.setCellFactory(new Callback<TreeTableColumn<FileModel, String>, TreeTableCell<FileModel, String>>() {
        @Override
        public TreeTableCell<FileModel, String> call(TreeTableColumn<FileModel, String> param) {
            TreeTableCell<FileModel, String> cell = new TreeTableCell<FileModel, String>() {

                @Override
                protected void updateItem(String t, boolean bln) {
                    super.updateItem(t, bln); //To change body of generated methods, choose Tools | Templates.                        

                    System.out.println(this.getTableColumn().);
                    Label lbl = new Label(t);
                    lbl.setStyle("-fx-font-weight: bold; -fx-font-size: 14pt; -fx-text-fill: white;");
                    setGraphic(lbl);

                }

            };
            return cell;
        }

    });

现在,我如何区分班级? FileModel是一个由几个类实现的接口。在这个cellFactory中,我需要知道当前cell-&gt;项目的类型,以便在其上应用不同的样式。
感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用instanceof

FileModel fileModel = getTreeTableRow().getItem();
if(fileModel instanceof ExeFileModel){
   //set style here
} else if(fileModel instanceof TxtFileModel){
   //use another style here
}