2017-03-09 1 views
0

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> 

Antwort

0

Wenn die Bilder alle gleich groß sind, könnten Sie einfach Zellenbreite eingestellt und Höhe:

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

wo "albersList" ist natürlich die gridView (mit der fx: id you spec ified).

Wenn sie nicht alle gleich groß sind ich Sie erraten, die Breite der größten verwenden und die Höhe der höchsten

+0

Es funktioniert aber nicht perfect.When die Größe ist kleiner als das Bild gegeben, dort überlappen sich noch. –

+0

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

+0

Ja, aber die Größe ist begrenzt. Ich denke, ich kann das Bild verkleinern, wenn es gei ist. Ich werde es versuchen. –

Verwandte Themen