java加载图片的问题

来源:互联网 发布:spc数据自动生成器 编辑:程序博客网 时间:2024/04/29 06:24

最近一直在找如何把图片加载到java中,试了好多网上说的,结果都出了一堆的错。早上起来继续调试,终于弄好了,原来是路径的问题。

我就把部分代码放到这里:

setResizable(false);
  Container c = getContentPane();
  c.setLayout(null);
  setBounds(100,100,300,78);
  JLabel picture = new JLabel();
  //加载图片
  ImageIcon icon = new ImageIcon(getClass().getResource("D:\\Program Files\\eclipse-SDK-3.6.2-win32\\Thread\\bin\\com\\muchTask.aa.jpg"));
  picture.setIcon(icon);
  picture.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight());
  c.add(picture); 
  setVisible(true); 

然后编译的错误为:

java.lang.NullPointerException
 at javax.swing.ImageIcon.<init>(Unknown Source)
 at com.muchTask.SleepMethodDemo.<init>(SleepMethodDemo.java:37)
 at com.muchTask.SleepMethodDemo$1.run(SleepMethodDemo.java:52)
 at java.awt.event.InvocationEvent.dispatch(Unknown Source)
 at java.awt.EventQueue.dispatchEvent(Unknown Source)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.run(Unknown Source)
看到这一堆的错误,我头就大了,但千万不要被吓到。这只是你的图片没有找到,跑出了一个空指针异常而已。

我将程序修改之后:

Container c = getContentPane();
  c.setLayout(null);
  setBounds(100,100,300,300);
  JLabel picture = new JLabel();
  //加载图片
  ImageIcon icon = new ImageIcon(getClass().getResource("aa.jpg"));
  picture.setIcon(icon);
  picture.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight());
  c.add(picture); 
  setVisible(true);

然后运行正确,我是这样设置的。

首先要把图片和.class文件都放在bin目录里面。然后在程序中,只需要简单的  ImageIcon icon = new ImageIcon(getClass().getResource("aa.jpg"));由于图片和可执行文件在同一个文件夹,相对路径应该是aa.jpg。而我之前写的是绝对路径。

如果我有写的不对之处,敬请各位纠正哦。

 

 

0 0
原创粉丝点击