向JButton添加图像

5

我想在一个JButton中添加一张图片。按钮的背景设置为黑色。我试图将图片放在按钮上方,但什么也没显示出来。虽然背景颜色是黑色,但图片却不见了。

代码

public class Test extends JFrame {

    JButton b;
    JPanel p;

    Test() {
        p = new JPanel(new BorderLayout());
        b = new JButton();
        b.setBackground(Color.black);
        ImageIcon img = new ImageIcon("C:\\Users\\Aksi\\Documents\\NetBeansProjects\\test'\\src\\test\\Black_B.ico");
        b.setIcon(img);
       
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(400, 400);
        p.add(b);
        add(p);
       validate();

   }
    public static void main(String args[]) throws IOException {
        Test ob = new Test();
        ob.setVisible(true);
    }
}

请查看这个答案,如何将图像添加到您的项目,以及这个答案,了解有关如何在项目中添加图像而不是使用绝对路径的更多信息。如果在将容器设置为可见之前向其添加内容,则无需调用validate() - nIcE cOw
5个回答

5

有两个问题

  1. 路径看起来有错误
  2. Java本地不支持ico格式

检查一下路径,里面有引号

C:\\Users\\Aksi\\Documents\\NetBeansProjects\\test'\\src\\test\\Black_B.ico

请确定它是否应该存在。


+1 给 @MadProgrammer 的答案,它是正确的,祝你快乐的友谊日,MadProgrammer :) - Kishan Bheemajiyani

2
请注意,您应该使用一些Java支持的图像格式,例如.gif、.png等。

不错的发现。有关JRE声称支持的图像类型列表,请参见ImageIO.getReaderFileSuffixes()。请注意,输出可能会根据版本或操作系统而改变,因此最好在运行时检查用户图像,并将JPG、PNG或GIF用于应用程序图像。 - Andrew Thompson

1

1

可以尝试以下方法:

在您的Java项目中创建一个名为com.icon的包,并将图标添加到其中。

您可以按照以下方式设置按钮上的图标:

button.setIcon(new ImageIcon(MyFrame.class.getResource("com/icon/Ok.png")));

建议您使用 .png 格式而非 .ico 格式。


0

这是我用来添加带有文本的图片的方法:

Icon a=new ImageIcon(getClass().getResource("a.png"));
buttonname=new JButton("ButtonTittle",a);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接