Java 具有绑定到属性的字符串或int

Java 具有绑定到属性的字符串或int,java,javafx,javafx-8,Java,Javafx,Javafx 8,我需要在JavaFX中制作一个程序,在那里我需要管理一个电影库。我有一个由可观察列表填充的tableview。然后,我在属性和tableview旁边的文本框或标签之间进行了绑定。现在的问题是,我还有一些与电影相关的图片,比如电影海报。目前我只使用了一个硬编码的: imgPoster = new Image(getClass().getResourceAsStream("../resources/images/posters/" + 5 + ".jpg")); 在数据文件中,有一列具有电影的ID

我需要在JavaFX中制作一个程序,在那里我需要管理一个电影库。我有一个由可观察列表填充的tableview。然后,我在属性和tableview旁边的文本框或标签之间进行了绑定。现在的问题是,我还有一些与电影相关的图片,比如电影海报。目前我只使用了一个硬编码的:

imgPoster = new Image(getClass().getResourceAsStream("../resources/images/posters/" + 5 + ".jpg"));
在数据文件中,有一列具有电影的ID,相同的编号也是电影的图片。因此,我需要用一个绑定替换示例代码中的“5”,或者在我单击tableview中的一行时,它就会主动更改图片

我该怎么做

编辑:

在第一次评论之后,我这样做了:

imgOscars = new Image(getClass().getResourceAsStream("../resources/images/oscar/Oscar-logo.png"));
    oscars = new ImageView(imgOscars);
    oscars.setPreserveRatio(true);
    oscars.setFitHeight(45);

但是问题仍然存在

或者在表中的selected item属性中添加一个侦听器(我只是猜测您在表中使用的模型):


不可能。考虑<代码>图像< /代码>为此目的不可变。但是,您可以替换
图像视图中显示的
图像
…我更改了它。。。但我现在怎么做呢?
TableView<Movie> table = ... ;

table.getSelectionModel().selectedItemProperty().addListener((obs, oldSelectedMovie, newSelectedMovie) -> {
    if (newSelectedMovie == null) {
        oscars.setImage(null);
    } else {
        // get image from new selection
        Image image =  new Image(getClass().getResourceAsStream("../resources/images/oscar/"+newSelectedMoviegetId()+".png")); 
        oscars.setImage(image);
    }
});
oscars.imageProperty().bind(Bindings.createObjectBinding(() -> {
    if (table.getSelectionModel().getSelectedItem() == null) {
        return null ;
    } else {
        Movie selected = table.getSelectionModel().getSelectedItem();
        return  new Image(getClass().getResourceAsStream("../resources/images/oscar/"+selected.getId()+".png")); ; 
    }, 
    table.getSelectionModel().selectedItemProperty());