JButton Image Icon不显示.png文件

时间:2022-10-31 09:43:20

I've been looking everywhere for a solution to this and read some similar posts related to this problem but none of them worked for me.

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

I'm trying to display the image "b.png" on the JButton and when i roll over the button the icon changes.

我正在尝试在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()));

        }

    }

}

The images are in a folder named images which is in the src folder alongside the Gui.java file and the TESTMain.java file.

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

The error i'm getting is a null pointer exception from Main. I have tried

我得到的错误是Main的空指针异常。我努力了

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

This compiles but the image is not displayed. I have also tried

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

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

And

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

I know that getClass().getResource() is prefferred as the images need to be compiled with the jar.

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

Any ideas on getting my images to display?

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

1 个解决方案

#1


5  

Your images folder needs to be in the same folder as your compiled .class files, instead of in src with your .java files.

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

#1


5  

Your images folder needs to be in the same folder as your compiled .class files, instead of in src with your .java files.

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