gpt4 book ai didi

java - 我无法显示我的 ImageIcon

转载 作者:行者123 更新时间:2023-12-01 22:38:28 29 4
gpt4 key购买 nike

这是我的代码

import javax.swing.*;
public class Option extends JFrame{

ImageIcon img = new ImageIcon("image.png");
ImageIcon img2 = new ImageIcon("image2.png");
JButton testBut = new JButton(img);
JButton testBut2 = new JButton(img2);
JPanel pnl = new JPanel();

public Option(){
super("Swing Window");
setSize( 500,200 );
setDefaultCloseOperation(EXIT_ON_CLOSE);
pnl.add(testBut);
pnl.add(testBut2);
add(pnl);
setVisible(true);
}

public static void main(String[] args){
Option gui = new Option();
}
}

我将两个图像都放在与类文件相同的目录中,并且按钮显示为空白。我对 Java 很陌生,所以我想不出这是错误的任何原因。

编辑

图像与选项类位于同一目录中

最佳答案

"The images are in the same directory as the Option class"

ImageIcon(String) 试图在工作目录的上下文中(从执行程序的位置)查找命名图像,但它将失败,因为图像实际上不存在于其中.

图像包含在应用程序上下文中(当您的应用程序被打包时,图像将嵌入到 Jar 中)。

相反,您应该尝试使用...

img = new ImageIcon(getClass().getResource("image.png"));

来自类的构造函数。这将尝试查找与在应用程序类路径上下文中调用 getResource 的类的包相关的图像

我还鼓励使用 ImageIconImageIO.read 有两个原因,一是保证在调用该方法时加载图像(而不是已在某些后台线程中加载),第二,如果由于某种原因无法加载图像,它将抛出 IOException,这会更有帮助

看看Reading/Loading an Image了解更多详情

关于java - 我无法显示我的 ImageIcon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26538434/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com