getresource java,java如何使用getResource()添加图像?

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;

here the Jpanel class

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);

}

}

and here the main class

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();

}

}

the error is clearly in the line

image = ImageIO.read(getClass().getResource("/ressources/image.png"));

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

I created a folder "ressources" and i put the image there, here the path

projectName\ressources\image.png

thank you.

解决方案

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")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值