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"));
}
私が間違って何が起こっているかわからない、または何この問題を解決するためにしようとします。どんな助けもありがとう!
パスは正しいです、私はチェックするためにそれらをコンソールに出力します。そのリンクは実際に私がコードを書くのを助けてくれた場所です。 – Hamon148
@ Hamon148私は悲しいです、私はイメージが読み込まれていない理由を再現できません。完全なプロジェクトをgithubやファイルホスティングプラットフォームにアップロードすることはできますか?あるいはSSCCEを書くことはできますか? – fireandfuel