将ImageView拟合到TreeTableCell中

时间:2018-06-03 19:58:50

标签: javafx treetableview jfoenix

我正在使用JFXTreeTableView,其中有一列显示图片。该列的构造如下:

JFXTreeTableColumn<MyLog, ImageView> statusColumn = new JFXTreeTableColumn<>("Status");
statusColumn.setCellValueFactory((TreeTableColumn.CellDataFeatures<MyLog, ImageView> param) -> {
    return param.getValue().getValue().statusImage;
});

班级MyLog如下所示:

public class MyLog extends RecursiveTreeObject<MyLog> {


    // more properties...
    public ObjectProperty<ImageView> statusImage = new SimpleObjectProperty<ImageView>();

    public MyLog(String imagePath)
    {
        statusImage.set(new ImageView(new Image(MyProject.class.getResourceAsStream(imagePath))));
    }
}

我想要显示的图片就是这个:

enter image description here

但是,图像无法正确装入单元格。这就是表格的外观:

enter image description here

如何在不修改图像本身的情况下使图像适合单元格?

1 个答案:

答案 0 :(得分:1)

您应该分开要显示的数据(Image)及其显示方式(ImageView)。

这是通过将MyLog的{​​{1}}属性修改为包含类型statusImage并使用返回Image的{​​{1}}来完成的cellFactory显示图像。

TreeTableCell
ImageView