2016-11-21 14 views
1

タイトルには、CellFactoryを設定してImageをTableViewの列に挿入する必要がありますが、FileChooserでパスが設定されている画像は表示されません。表。しかし、最初の行を選択すると、そこに何かがあるかのように強調表示されます。ここ は私のコントローラクラスから自分のコードの抜粋です:JavaFXをCellFactoryを使用してTableViewに配置する

@FXML 
private void initialize() 
{ 
    TableColumn thumbNail = new TableColumn("Photo"); 
    thumbNail.setCellValueFactory(new PropertyValueFactory("image")); 
    thumbNail.setPrefWidth(200); 

    thumbNail.setCellFactory(new Callback<TableColumn<Image, Photo>, TableCell>() 
    { 
     @Override 
     public TableCell<Image, Photo> call(TableColumn<Image, Photo> param) 
     { 
      TableCell<Image, Photo> cell = new TableCell<Image, Photo>() 
      { 
       ImageView img = new ImageView(); 
       @Override 
       public void updateItem(Photo item, boolean empty) 
       { 
        if(item != null) 
        { 
         HBox box = new HBox(); 
         box.setSpacing(10); 
         VBox vbox = new VBox(); 
         vbox.getChildren().add(new Label("THIS")); 
         vbox.getChildren().add(new Label("DATE")); 

         img.setFitHeight(50); 
         img.setFitWidth(50); 
         img.setImage(new Image(new File(item.getPath()).toURI().toString())); 

         box.getChildren().addAll(img, vbox); 
         setGraphic(box); 
        } 
       } 
      }; 
      return cell; 
     } 
    }); 
    photoView.getColumns().addAll(thumbNail); 
    loadScreen(); 
} 

// Load the album contents. 
public void loadScreen() 
{ 
    if(imgList != null) 
    { 
     imgList.clear(); 
    } 
    if(currUser != null && thisAlbum.getPhotoList() != null) 
    { 
     imgList = FXCollections.observableArrayList(thisAlbum.getPhotoList()); 
     //FXCollections.sort(obsList); 

     photoView.setItems(imgList); 
    } 
    if(imgList == null) 
    { 
     photoView.setPlaceholder(new Label("No Photos In List")); 
    } 

私が間違って何が起こっているかわからない、または何この問題を解決するためにしようとします。どんな助けもありがとう!

答えて

1

画像のパスが正しいことを確認してください。さもなければ、イメージセルは画像を表示しません(そして驚くほど例外を投げません)。

PS:コード(おそらくあなたのソースの1つ)を少し修正したバージョン: TableView Cell Modify in JavaFXが見つかりました。

+0

パスは正しいです、私はチェックするためにそれらをコンソールに出力します。そのリンクは実際に私がコードを書くのを助けてくれた場所です。 – Hamon148

+0

@ Hamon148私は悲しいです、私はイメージが読み込まれていない理由を再現できません。完全なプロジェクトをgithubやファイルホスティングプラットフォームにアップロードすることはできますか?あるいはSSCCEを書くことはできますか? – fireandfuel

関連する問題