将图像插入TableView行 - JavaFX

时间:2014-09-01 07:44:25

标签: image javafx imageview tableview fxml

只是想知道如何在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 \ 我已经解决了这个问题,但它仍然没有用,有什么想法吗? :/

0 个答案:

没有答案