java如何使用getResource()添加图像? [英] java how to add image using getResource()?

查看:310
本文介绍了java如何使用getResource()添加图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将图像添加到Jpanel类中,我使用方法getResource(),但它返回Exception in thread "main" java.lang.IllegalArgumentException: input == null!,因为我提供的图像文件夹中的路径无效,现在我想如何获取有效的图像路径,我知道也许这确实很容易,这不是我在这里要问的问题,但是我花了很多时间并尝试了不同的路径,但这是行不通的;

I want to add an image to a Jpanel Class, I use the method getResource() but it returns Exception in thread "main" java.lang.IllegalArgumentException: input == null!, because the path into the image folder that i give is not valid, now I want how to get the valid path, I'm aware that maybe it's really easy and it's not a question that I've to ask here but I'm spending a lot of time and trying different path but it doesn't work;

这里是Jpanel类

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;


public class Application extends JPanel  {

    private BufferedImage image;

    public Application() {
          try {
                image = ImageIO.read(getClass().getResource("/ressources/image.png"));
          } catch (IOException ex) {
                System.out.println("problem! image can't be loaded!");
          }
    }

    @Override
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        g.drawImage(image, 0, 0, null);
    }
}

这里是主类

import javax.swing.*;
//import java.awt.*;

public class mainClass {

        public mainClass () {

            JFrame app = new JFrame();
            app=.setTitle("main window");
            app=.setSize(400, 400);
            app=.setLocationRelativeTo(null);
            app=.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            app=.add(new Application()); 
            app=.setVisible(true);
        }

        public static void main(String[] args) {
            mainClass class = new mainClass();
        }
    }

错误明显在一行中 image = ImageIO.read(getClass().getResource("/ressources/image.png"));

the error is clearly in the line image = ImageIO.read(getClass().getResource("/ressources/image.png"));

由于路径无效, 我使用的是Maven项目,因此此类的路径为: projectName \ src \ main \ java \ application \ mainClass.java projectName \ src \ main \ java \ application \ Application.java

cause the path is not valid, I use a maven project, so the path of this classes is : projectName\src\main\java\application\mainClass.java projectName\src\main\java\application\Application.java

我创建了一个文件夹"resources",并将图像放在此处,这里是路径 projectName \ ressources \ image.png

I created a folder "ressources" and i put the image there, here the path projectName\ressources\image.png

谢谢.

推荐答案

您需要将图像放置在src/main/resources/image.png中,以使其在该项目的资源根目录中可见...并且观看资源拼写.参见 http://www.mkyong.com/java /java-read-a-file-from-resources-folder/获取资源加载的简要摘要.

You need to place your image in src/main/resources/image.png for it to be seen as in the resource root of this project...and watch that spelling of ressource. See http://www.mkyong.com/java/java-read-a-file-from-resources-folder/ for a nice summary of resource loading.

然后此行应该起作用;

Then this line should work;

image = ImageIO.read(getClass().getClassLoader().getResource("image.png")

image = ImageIO.read(getClass().getClassLoader().getResource("image.png")

这篇关于java如何使用getResource()添加图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆