当前位置: 首页 > 知识库问答 >
问题:

将图像加载到ImageView JavaFX

施洛城
2023-03-14

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

我也尝试过以这种方式加载图像:
Image=new Image(getClass(). getResourceAsStream(path));,但遇到了同样的问题。

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

>

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

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

    java prettyprint-override">public void showDialogWithImage(String path) {
            final Stage dialogStage = new Stage();
    
            logger.info(path);
    
            InputStream is = null;
            try {
                is = new FileInputStream(path); // here I get FileNotFoundException
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
    
            Image image = new Image(is);
            ImageView view = new ImageView();
            view.setImage(image);
    
            Button btnOK = new Button("OK");
            btnOK.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent event) {
                    dialogStage.close();
                }
            });
    
            dialogStage.initModality(Modality.WINDOW_MODAL);
            dialogStage.setScene(new Scene(VBoxBuilder.create()
                    .children(view, btnOK).alignment(Pos.CENTER)
                    .padding(new Insets(35)).build()));
            dialogStage.show();
    
        }
    
  • 共有2个答案

    李奕
    2023-03-14

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

                                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);
    
    孟沛
    2023-03-14

    getClass()。getResourceAsStream(path)将从调用类的位置开始文件搜索。因此,通过使用这个路径“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");
    
     类似资料:
    • 问题内容: 我想在对话框窗口中显示图像(保存在项目文件夹中),但是当我运行方法showDialogWithImage时,我得到FileNotFoundExcpetion:imgs \ pic1.jpg(系统找不到指定的文件),尽管图像位于此处。 我也尝试过以这种方式加载图像: Image image = new Image(getClass()。getResourceAsStream(path))

    • 问题内容: 我正在使用Java Opencv-2.4.4和swingGUI开发应用程序。问题是我找不到任何解决方案,该解决方案显示了如何将处理后的图像(保存在_Mat_ 对象中)打印到java swing GUI的有效方法。目前,我正在使用以下笨拙的解决方案: 当用户改变一些值,输入等等,在GUI我必须覆盖 Output.png 磁盘和更新的JLabel从磁盘的新形象。 有没有更优雅/有效的解决方

    • 我将图像路径(来自图库的图像)存储在SQLite数据库中,现在加载到图像视图中。。。并使用此代码: 和错误: E/BitmapFactory:无法解码流:java.io.FileNotFoundException:/storage/emulated/0/DCIM/Camera/IMG_20161230_224205.jpg(权限被拒绝)

    • 问题内容: 我试图从文件选择器中选择图像文件后立即显示它。文件选择器仅限于.png和.jpg文件,所选文件存储在File类型的变量中。为此,我已经设置了ImageView,并且我希望使用此新文件设置图像,唯一的问题是文件类型不是图像。 如何做到这一点?到目前为止的代码… 问题答案: 您可以简单地用 然后将其放在: 其他构造函数提供了对加载图像所需资源的更多控制。如果要强制将图像设置为特定大小,则可

    • 我想在android opencv上用Mat类加载图像,但我有一些错误。我在我的项目上添加库。我的代码:private CameraBridgeViewBase mopencvCameraView; private BaseLoaderCallback mLoaderCallback=new BaseLoaderCallback(this){@override public void onMana

    • 问题内容: 我需要做的事情很简单,但是(对我来说)很难做到: 使用 javascript ,给定图像名称,即“ image01.jpg”,我需要检查该图像是否存在于某个文件夹或路径(本地或网络)中。如果该文件夹下不存在该图像,则需要检查另一个文件夹中是否存在同一图像。 例如,使用伪代码 您建议采用哪种方法?我尝试先使用ajax来实现此目的,然后使用javascript的Image()来实现,但是在