我有一个电影列表和有关它们的信息保存在mysql数据库中。当我点击列表中的电影时,它会显示有关电影的信息,但是我无法为每部电影加载图像。数据库中的一列是“ImageName”。所有图像都保存在同一个文件夹中,所以我试图像这样加载它们:
@FXML
ImageView sl;
...
String imgName = this.film.getImageName();
i = new Image("/movies/images/" + imgName);
sl.setImage(i)
它不起作用,但是当我尝试加载这样的特定图像时,它可以工作:
i = new Image("/movies/images/Lotr.jpg");
我已尝试打印图像路径以查看问题所在:
String msg = ("/movies/images/" + imgName);
System.out.print(msg);
结果:/movies/images/ L o t r
它在图像名称的字母之间打印了三个空格,所以我假设这就是为什么我的代码不起作用,但我不知道如何解决这个问题。
编辑: 以下是我选择图像并将名称指定给imageName的方法:
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Select Image File");
fileChooser.getExtensionFilters().addAll( new FileChooser.ExtensionFilter("Image Files",
"*.bmp", "*.png", "*.jpg", "*.gif"));
File selectedFile = fileChooser.showOpenDialog(null);
filePath = selectedFile.getAbsolutePath();
File sourceFile = new File(filePath);
File destinationFile = new File("C:\\Users\\t\\Documents\\NetBeansProjects\\Movies\\src\\movies\\images\\" + sourceFile.getName());
imageName = sourceFile.getName();
copyFile(sourceFile, destinationFile);
顺便说一句,图像的名称在数据库中看起来是正确的。