2013-01-05 46 views
0

我在看这个教程:On how to create custom JButtons如何将图标添加到一个JButton

,我把我的文件在C <用户< MyUserName输入<工作区<项目名< SRC像教程说,我得到这个错误Exception in thread "main" java.lang.NullPointerException at javax.swing.ImageIcon.<init>(Unknown Source) at Gui.<init>(Gui.java:20) at tuna.main(tuna.java:6) 关于下一个教程的评论,它说,把它放在C <用户< MyUserName <工作区<工程名称< bin所以我试过,我仍然得到同样的错误。我使用的是eclipse,我有一个比本教程中使用的更新的版本。任何帮助?

附加信息:文件是png格式

金枪鱼:

Gui item = new Gui(); 
    item.setSize(300,300); 
    item.setLocation(200,100); 
    item.setVisible(true); 
    item.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

编辑:现在的工作,我不知道为什么它之前error'd,我没有改变什么。无论如何感谢您的帮助!

+2

你需要显示一些代码,尤其是类金枪鱼 –

+0

错误的文件路径永远不会给NullPointerException。最好是显示一下你的代码 – exexzian

+0

@nPwn你所显示的代码是无用的,向我们展示更多你的代码,在那里你创建你的JButton并设置它的图标 – exexzian

回答

0

您可以使用以下命令查看根目录是什么。

File f = new File(""); 
    System.out.println(f.getAbsolutePath()); 

很可能您的程序正在寻找与您认为不同的目录。

3

只要您从放置图像的位置加载图像,放置图像的位置并不重要。如果您使用的是

Icon yourIconName = new ImageIcon(getClass().getResource("yourIconName.png")); 

那么它不仅需要在您的src文件夹内,而且还需要与金枪鱼一样的包。

如果您使用的绝对路径类似"C/Users/MyUserName/workspace/projectName/imageFile.png",请确保您有正确的路径来尝试查找图像。

另外,它看起来像你使用的是新波士顿的教程,如果你想发布你正在看的那个教程可能会有所帮助。

+0

我发布了教程 – nPwn

+0

对不起!看起来您使用的是第一个选项,因此请确保将图像保存在与金枪鱼类相同的包中,并且确保已正确拼写“yourIconName.png”。 – user1654889