JButton 不在 GUI 中显示图标图像

JButton isn't displaying Icon image in GUI

我正在尝试使用 GUI 显示 .png 图片。但是我在显示图片时遇到了问题。 我想我已经隔离了我在说明中搞砸的地方,但似乎找不到可行的解决方案。

指示中告诉我...

看来我需要创建一个方法来初始化 imgButton。但是如果我那样做,我不需要为每个图标图像创建一个新变量吗?例如

imgButton = new JButton(image1);
final JButton imgButton2 = new JButton(image2);
final JButton imgButton3 = new JButton(image3);

如果我能得到任何帮助,我将不胜感激。谢谢

package ImageButton.Downloads;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;

public class ImageButton extends JFrame
{


    private final JButton imgButton;
    private final Icon clickImage;

    public ImageButton() 
    {


        JFrame frame = new JFrame();
        frame.setTitle("Lab Button");

        Icon image1 = new ImageIcon(getClass().getResource("Image1.png"));
        Icon image2 = new ImageIcon(getClass().getResource("Image2.png"));
        clickImage = new ImageIcon(getClass().getResource("Image3.gif"));

        imgButton = new JButton(image1);

        imgButton.setRolloverIcon(image2);



    }


}

package ImageButton.Downloads;


import javax.swing.JFrame;

public class ImageButtonApp 
{

    public ImageButtonApp() 
    {
        // TODO Auto-generated constructor stub
    }

    public static void main(String[] args) 
    {
        ImageButton imageButton = new ImageButton();

        imageButton.setSize(660, 660);
        imageButton.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        imageButton.setVisible(true);


    }

}

您正在创建 两个 JFrames,显示其中 一个,但将您的 JButton 添加到 none 个。换句话说,您的代码忽略了这个 rec:

Add the imgButton to this (ImageButton, which is a JFrame)

解决方案:仅使用一个 JFrame,您的class按照您的说明,将您的JButton 添加到它或添加到添加到JFrame 的JPanel,然后显示它。

具体来说,更改为:

JFrame frame = new JFrame(); // extra JFrame that's never used!
frame.setTitle("Lab Button");

对此:

super("Lab Button");

并在构造函数的末尾添加一个add(imgButton);