JavaFX创建图像和ImageView

时间:2015-04-18 12:06:57

标签: image javafx imageview

坚持基础。我有一些设置图像路径的语法问题。 当我尝试创建一个图像并给它图像路径时,它总是抛出一些关于路径的例外。我已经评论了一些我已经尝试过的路径组合。你能告诉我我做错了什么吗?谢谢。

包jopofx;

public JoPoCTRL(JoPoFX gui){
    this.gui = gui;  
}

public void updateImages(){
    Image img = null;
    try{
        //img = new Image("C:\\Users\\ ... //FullPath ... \\JoPoFX\\src\\jopofx\\myimage.png");
        img = new Image("\\JoPoFX\\src\\jopofx\\myimage.png");
        //img = new Image("\\src\\jopofx\\myimage.png");
        //img = new Image("\\myimage.png");

    }catch(Exception e){
        System.out.println("error while creating image");
        e.printStackTrace();
    }

    try{
        gui.setImgV(img);
    }catch(Exception e){
        System.out.println("error while setting up the image");
    }        
}

打印出来的是: 创建图像时出错 java.lang.IllegalArgumentException:无效的URL:找不到无效的URL或资源     在javafx.scene.image.Image.validateUrl(Image.java:990)     在javafx.scene.image.Image。(Image.java:538)

2 个答案:

答案 0 :(得分:1)

Windows平台上,放置在src/jopofx内的图片:

img = new Image("\\jopofx\\myimage.png");

img = new Image("/jopofx/myimage.png");

然后您可以使用以下方法创建ImageView:

ImageView imageView = new ImageView(img);

此外,您还可以直接初始化ImageView,而无需通过以下方式初始化Image

ImageView imageView = new ImageView("/jopofx/myimage.png");

另外,请确保使用导入javafx.scene.image.Image;

答案 1 :(得分:0)

在我发布问题后,我在博客中发现了一个工作示例。 希望这个例子对某人有所帮助:

InputStream stream = getClass().getResourceAsStream("images/"+imageName+".jpg");
//"images/" is the a local directory where all my images are located
Image newImage = new Image(stream); 
imgV.setImage(newImage);