只是想知道如何在JavaFX中将图像插入到TableView的单元格中。
我已经在这个网站上阅读了其他人的解决方案,但我们认为他们的设置与我的设置有点不同,但我们很难理解它们。
我正在制作一个游戏库,在tableview中我想要一个游戏的图标。正在从.dat文件(在这种情况下是图标的URL的字符串)中读取数据,并且行中的所有字符串都可以工作。
制作专栏
@FXML
private TableColumn<Game, Image> iconCol;
在initialize()中,正在设置单元格。
iconCol.setCellValueFactory(cellData -> cellData.getValue().iconURLProperty());
我在这里收到错误,因为iconURLProperty是我想要设置的图标图片的URL的字符串。
我知道我需要一个imageview,我知道我需要为它分配网址,但我不确定如何。
如果您需要更多代码,请告诉我,我再次检查网站上的其他类似问题,但没有真正的解决方案。 谢谢你的帮助:)
/ 更新 \ 大家好,谢谢你的回复。我已经提到了一些你提到的更彻底的问题,并尝试将它们应用到我的中。
我现在在这个问题上遇到同样的错误: How to add an Image into a JavaFx TableView column
但是我尝试应用包含CellValueFactory的解决方案,但问题仍然存在。 这就是我所拥有的,正在制作的列(在场景构建器中):
@FXML
private TableColumn<Game, Image> iconCol;
游戏是保存每个游戏信息的类。
然后在初始化中我将这个用于iconCol:
iconCol.setCellValueFactory(new PropertyValueFactory<>("icon"));
iconCol.setCellFactory(new Callback<TableColumn<Game, Image>, TableCell<Game, Image>>() {
@Override
public TableCell<Game, Image> call(TableColumn<Game, Image> param) {
final ImageView imageview = new ImageView();
imageview.setFitHeight(50);
imageview.setFitWidth(50);
//Set up the Table
TableCell<Game, Image> cell = new TableCell<Game, Image>() {
public void updateItem(Game game, boolean empty) {
// if (item != null) {
imageview.setImage(game.iconURLProperty());
// }
}
};
// Attach the imageview to the cell
cell.setGraphic(imageview);
return cell;
}
});
我在这一行收到错误:
imageview.setImage(game.iconURLProperty());
因为它说StringProperty无法转换为Image。 iconURLProperty()检索我想要显示的图像的URL(例如“icon / fallout.jpg”)。
对任何愚蠢的时刻表示歉意,我大约一个月前刚刚开始使用JavaFX。 谢谢大家的帮助:)
/ 更新2 \ 我已经解决了这个问题,但它仍然没有用,有什么想法吗? :/