如何从数据库加载图像名称并将其加载到我的imageview中

时间:2017-03-24 22:59:27

标签: javafx javafx-2 javafx-8

我有一个项目,我在我的数据库图像中只存储了他们的名字,所以我想用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);
            }


        }
    });

1 个答案:

答案 0 :(得分:0)

为什么要将图像数据加载到BufferedImage,然后将此BufferedImage转换为JavaFX Image,这样可以避免将图像数据直接加载到内存中,从而将图像数据存储到内存中两次Image

Image image = new Image(file.toURI().toURL().toExternalForm());

我不确定数据库是如何涉及的,因为FileChooser允许您从客户端可用的存储设备中选择图像,这意味着您需要实现一些检索来自服务器的数据...(除非数据库仅用于本地计算机)