Java 应用程序在构建时会丢失图像
对于我正在进行的一个项目,我制作了一张宾果卡。基本功能是随机生成一张卡,并在STD out和我手工制作的Swing GUI中显示。此应用程序中有多个java文件 java-主文件。这是程序运行时运行的内容。 java-创建宾果卡,将其打印到STD out,并检查宾果 java-使用二维图形绘制GUI的背景 java-调用BingoBG并创建25个带有board值的标签。当Bingo_卡找到一个匹配的号码(由STD IN输入)时,它不再打印该号码,而是打印Chip.png(与java文件位于同一个包文件夹中)一个Bingo芯片图像,使其看起来被覆盖 当我通过NetBeans运行它时,它可以完美地工作,但当我清理并构建它,然后在终端中运行jar时,除了显示宾果芯片图像之外,其他一切都可以工作。有人知道为什么会这样吗 编辑:下面是我加载图像的方式Java 应用程序在构建时会丢失图像,java,image,swing,Java,Image,Swing,对于我正在进行的一个项目,我制作了一张宾果卡。基本功能是随机生成一张卡,并在STD out和我手工制作的Swing GUI中显示。此应用程序中有多个java文件 java-主文件。这是程序运行时运行的内容。 java-创建宾果卡,将其打印到STD out,并检查宾果 java-使用二维图形绘制GUI的背景 java-调用BingoBG并创建25个带有board值的标签。当Bingo_卡找到一个匹配的号码(由STD IN输入)时,它不再打印该号码,而是打印Chip.png(与java文件位于同一个
ImageIcon chip; //declare ImageIcon
chip = new ImageIcon("chip75.png"); //define it as chip75.png. It is stored in package folder
JLabel B1Chip; //declare empty Label
B1Chip = new JLabel(chip); //define the Label with just the ImageIcon
B1Chip.setBounds(22, 112, chip.getIconWidth(), chip.getIconHeight()); //place at (22,112)
frame.add(B1Chip, null); //Add to frame
将图像文件复制到jar中或给出图像文件的绝对路径您应该使用以下方法访问
图像
:
ImageIcon chip = new ImageIcon(ClassName.class.getResource("/chip75.png"))
更多信息,请访问信息页面
链接中提到的关于将图像
添加到NetBeans
项目的详细答案
更重要的是,使用它是明智的,因为它至少会通过抛出IOException
Throws:
IllegalArgumentException - if input is null.
IOException - if an error occurs during reading.
另一方面,
ImageIcon
将隐藏异常
如果有:-)显示如何加载图像。关于如何在项目中加载图像,请看一下这一点。希望有帮助:-)@Qwerky:更新了原始问题,以显示它是怎样的loaded@MichaelDornisch:使用ClassNane.class.getResource(“/chip75.png”)
insideImageIcon
constructor:-)@nIcEcOw如果可以,请将您所做的作为答案发布。你包含的链接回答了我的问题