Ich verwende GridView, um die Ansicht in meinem Projekt zu erstellen. Ich möchte ein Element mit einem Label und einem Bild in GridView verwenden. Aber das Bild überlappt, wenn ich mindestens zwei Bilder hinzufüge. Ich weiß nicht warum? Die Zelle-Code folgt:Wie ändere ich die Breite der Zelle in GridView in ControlsFx?
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);
}
}
und ich benutze Gridview in fxml wie folgt aus:
<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>
Es funktioniert aber nicht perfect.When die Größe ist kleiner als das Bild gegeben, dort überlappen sich noch. –
Ich bin mir nicht sicher, ob ich das verstehe: Kennst du die Größe aller Bilder? Wenn ja, können Sie eine Größe verwenden, die groß genug ist, um jede von ihnen zu enthalten – negste
Ja, aber die Größe ist begrenzt. Ich denke, ich kann das Bild verkleinern, wenn es gei ist. Ich werde es versuchen. –