我有一个项目,我在我的数据库图像中只存储了他们的名字,所以我想用javafx加载那些图像
我不知道如何加载图像
public void initialize(URL url, ResourceBundle rb) {
// help me here to retreive my images names
}
这是我的按钮,可以让我更改我的封面图片 这是代码
changecover.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
try {
FileChooser fileChooser = new FileChooser();
//Set extension filter
FileChooser.ExtensionFilter extFilterJPG = new FileChooser.ExtensionFilter("JPG files (*.jpg)", "*.JPG");
FileChooser.ExtensionFilter extFilterPNG = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.PNG");
fileChooser.getExtensionFilters().addAll(extFilterJPG, extFilterPNG);
//Show open file dialog
File file = fileChooser.showOpenDialog(null);
BufferedImage bufferedImage = ImageIO.read(file);
Image image = SwingFXUtils.toFXImage(bufferedImage, null);
coverpic.setImage(image);
Groupe g = gs.getGroupe(5);
g.setPhoto_couverture(coverpic.toString());
gs.update(g);
//myImageView.setImage(image);
} catch (IOException ex) {
Logger.getLogger(Groupe_homeController.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
答案 0 :(得分:0)
为什么要将图像数据加载到BufferedImage
,然后将此BufferedImage
转换为JavaFX Image
,这样可以避免将图像数据直接加载到内存中,从而将图像数据存储到内存中两次Image
:
Image image = new Image(file.toURI().toURL().toExternalForm());
我不确定数据库是如何涉及的,因为FileChooser
允许您从客户端可用的存储设备中选择图像,这意味着您需要实现一些检索来自服务器的数据...(除非数据库仅用于本地计算机)