Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将图像加载到ImageView JavaFX_Java_Javafx_Javafx 2 - Fatal编程技术网

将图像加载到ImageView JavaFX

将图像加载到ImageView JavaFX,java,javafx,javafx-2,Java,Javafx,Javafx 2,我想在对话框窗口中显示图像(保存在项目文件夹中),但是当我运行我的方法showDialogWithImage时,我会得到filenotfoundException:imgs\pic1.jpg(系统找不到指定的文件),尽管图像位于那里 我也尝试过用这种方式加载图像: 图像图像=新图像(getClass().getResourceAsStream(路径));,但也有同样的问题 是否有其他可能将图像加载到ImageView? 谢谢你的帮助 我的Java代码位于项目文件夹的src\myProject\

我想在对话框窗口中显示图像(保存在项目文件夹中),但是当我运行我的方法showDialogWithImage时,我会得到filenotfoundException:imgs\pic1.jpg(系统找不到指定的文件),尽管图像位于那里

我也尝试过用这种方式加载图像:
图像图像=新图像(getClass().getResourceAsStream(路径));,但也有同样的问题

是否有其他可能将图像加载到ImageView?
谢谢你的帮助

  • 我的Java代码位于项目文件夹的src\myProject\gui中

  • path=“imgs\pic1.jpg”//imgs位于项目文件夹中

public void showDialogWithImage(字符串路径){
最终阶段dialogStage=新阶段();
logger.info(路径);
InputStream=null;
试一试{
is=newfileinputstream(path);//这里我得到FileNotFoundException
}catch(filenotfounde异常){
e、 printStackTrace();
}
图像=新图像(is);
ImageView=新的ImageView();
view.setImage(图像);
按钮btnOK=新按钮(“确定”);
setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
dialogStage.close();
}
});
dialogStage.InitModal(MODAL.WINDOW_MODAL);
dialogStage.setScene(新场景(VBoxBuilder.create())
.子对象(视图,btnOK).对齐(位置中心)
.padding(新插图(35)).build());
dialogStage.show();
}
getClass()。getResourceAsStream(路径)将从调用类的位置开始文件搜索。因此,通过使用这个路径
“imgs\pic1.jpg”
,您可以说这是您的文件结构

src\myProject\gui\imgs\pic1.jpg
要使搜索遍历返回,需要在imgs之前使用额外的分隔符。所以

"\imgs\pic1.jpg"
另外,我认为当你使用反斜杠作为分隔符时,你需要避开它。所以

"\\imgs\\pic1.jpg
或者只使用正斜杠

"/imgs/pic1.jpg
另一种选择是使用类加载器,它将从根进行搜索,在根中不需要开头分隔符

getClass().getClassLoader().getResourceAsStream("imgs/pic1.png");

例如,当加载带有路径的图像时,需要将分隔符文件“\”替换为“/”

                            String ImageName="MyImage.png";

                            File file = new File("src\\Messages\\Attachements\\Images");

                            try {
                                if (!file.exists()) {
                                    FileUtils.forceMkdir(file);


                                } 

                                }

                            } catch (Exception io) {
                                io.printStackTrace();
                            }
                            Image image = new Image("/Messages/Attachements/Images/"+ImageName=);
                            ImageReceived.setImage(image);