【问题标题】:JavaFX8 tree tabel view customize separate cellsJavaFX树表视图自定义单独的单元格
【发布时间】:2014-04-22 16:45:27
【问题描述】:

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

有没有办法为这些项目分配一个 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->item 是什么类型,以便对其应用不同的样式。
谢谢。

【问题讨论】:

    标签: javafx javafx-8 treetableview


    【解决方案1】:

    你可以使用instanceof:

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

    【讨论】:

    • 我无法获得 TableRow..only TableColumn 的实例,至少我不知道该怎么做。
    • 当然!太明显了。很抱歉没有注意到它。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-07-10
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    相关资源
    最近更新 更多