Java Can';在JButton中找不到ImageIcon

Java Can';在JButton中找不到ImageIcon,java,icons,jbutton,Java,Icons,Jbutton,我正在尝试将png类型的图像分配给已经创建的JButton 我在项目的根文件夹中添加了一个名为images的资源文件夹。 我试着用很多方法来解决这个问题,因为类似的问题已经存在,但我似乎无法解决 ImageIcon ico = new ImageIcon("/images/water.png"); bSquares[pos][line].setIcon(ico); 我也尝试过很多其他途径,比如 资料来源: ImageIcon ico=新的ImageIcon(“/TelikoDama/image

我正在尝试将png类型的图像分配给已经创建的JButton

我在项目的根文件夹中添加了一个名为images的资源文件夹。 我试着用很多方法来解决这个问题,因为类似的问题已经存在,但我似乎无法解决

ImageIcon ico = new ImageIcon("/images/water.png");
bSquares[pos][line].setIcon(ico);
我也尝试过很多其他途径,比如 资料来源: ImageIcon ico=新的ImageIcon(“/TelikoDama/images/water.png”)

我想是路径故障,或者我的日食没有找到它?我不知道

这是我得到的NPE:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
    at cheeckers.gameUI.initializeGui(gameUI.java:112)
    at cheeckers.gameUI.<init>(gameUI.java:33)
    at cheeckers.gameUI$1.run(gameUI.java:226)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:706)
    at java.awt.EventQueue$3.run(EventQueue.java:704)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:715)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

您可能应该使用以下代码获取java UI中几乎所有组件的图像文件:

JButton button = new JButton();
Image img= ImageIO.read(getClass().getResource("//images/water.png"));
button.setIcon(new ImageIcon(img));

是否确实已将资源文件夹添加到类路径?您可以发布PackageExplorer视图的屏幕截图……这已经被问过很多次了,例如,请查看这个用来结束您的问题的截图。有关更多类似问题/答案,请查看此。事实上,这第二个链接是最重要的,因为它将向您介绍本网站的搜索功能,并帮助减少不必要的重复问题。这是我说的,我知道这个主题已经被问到了,但我不能出去解决它,不是吗?我知道这个网站的搜索功能,这不是我第一次进入这样的社区this@JoeVox字体请看一看。希望这对你的努力有所帮助:-)如果我像这样开始,我不能把它设置为图标,即使我投了it@JoeVox:然后使用正确的构造函数创建带有图像的图像图标。API将在这里帮助您。请看一看。我已经对代码做了更改…我认为它现在应该可以工作了:)它回复为:未处理类型异常类型IOException@JoeVox:
Image ico = new ImageIcon(this.getClass().getResource("/images/water.png")).getImage();
                        bSquares[pos][line].setIcon(new ImageIcon(ico));
JButton button = new JButton();
Image img= ImageIO.read(getClass().getResource("//images/water.png"));
button.setIcon(new ImageIcon(img));