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
。