如何在ControlsFx中的GridView中调整单元格的宽度?

时间:2017-03-09 13:24:13

标签: listview gridview javafx cell controlsfx

我使用GridView在我的项目中构建视图。我想在GridView中使用带有标签和图像的项目。但是当我添加至少两张照片时,图像重叠了。我不知道为什么? 细胞代码如下:

public class AlbumCell extends GridCell<Album> {
ImageView img_cover;
Label ll_albumName;

@Override
protected void updateItem(Album item, boolean empty) {
    // TODO Auto-generated method stub
    super.updateItem(item, empty);
    // create the view;
    HBox box = new HBox();
    img_cover = new ImageView();

    ll_albumName = new Label();
    if (empty) {
        img_cover.setImage(new Image("Pic/bg.jpeg"));
        ll_albumName.setText("相册名");
    } else {
        img_cover = new ImageView(item.getCoverUrl());
        ll_albumName.setText(item.getAlbumName());
    }
    box.getChildren().addAll(img_cover, ll_albumName);

    setGraphic(box);
}

}

我在fxml中使用GridView,如下所示:

<StackPane   
      GridPane.columnIndex="1" GridPane.columnSpan="3"
      GridPane.rowIndex="1" GridPane.rowSpan="5">
            <children>
                <!-- prefHeight="309.0" prefWidth="425.0" -->
                <GridView fx:id="albumsList" />

            </children>
</StackPane>

1 个答案:

答案 0 :(得分:0)

如果您的图像大小相同,则只需设置单元格宽度和高度:

albumsList.cellWidthProperty().set(YOUR_IMAGE_WIDTH)
albumsList.cellHeightProperty().set(YOUR_IMAGE_HEIGHT)

其中“albumsList”当然是gridView(你指定的fx:id)。

如果它们的大小不一样,我想你必须使用最大的宽度和最高的高度