JButton Image Icon不显示.png文件

我一直在寻找解决方案,并阅读一些与此问题相关的类似post,但它们都不适合我。

我正在尝试在JButton上显示图像“b.png” ,当我滚动按钮时图标会发生变化。

package GUI_JButton; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Gui extends JFrame { private JButton reg; private JButton custom; public Gui() { super("Title goes here"); setLayout(new FlowLayout()); reg = new JButton("reg button"); // create reg button add(reg); // add reg button to JFrame // initialize images Icon b = new ImageIcon(getClass().getResource("images/imageA.png")); Icon x = new ImageIcon(getClass().getResource("images/imageB.png")); custom = new JButton("custom button", b); // create custom button custom.setRolloverIcon(x); add(custom); // add button to JFrame HandlerClass handler = new HandlerClass(); reg.addActionListener(handler); custom.addActionListener(handler); } private class HandlerClass implements ActionListener { public void actionPerformed(ActionEvent event) { JOptionPane.showMessageDialog(null, String.format("%s", event.getActionCommand())); } } } 

这些图像位于名为images的文件夹中,该文件夹位于Gui.java文件和TESTMain.java文件旁边的src文件夹中。

我得到的错误是Main的空指针exception。 我试过了

 Icon b = new ImageIcon("images/imageA.png"); 

这会编译,但不会显示图像。 我也试过了

 custom = new JButton("custom", new ImageIcon("images/imageA.png")); 

 custom = new JButton("custom", new ImageIcon(getClass().getResource("images/imageA.png")); 

我知道getClass().getResource()是prefferred,因为图像需要用jar编译。

有关让我的图像显示的任何想法?

您的images文件夹需要与编译的.class文件位于同一文件夹中,而不是与.java文件在src