对于我正在进行的项目,我制作了宾果卡。基本功能是卡片随机生成并以STD格式显示,也可以在手工制作的Swing GUI中显示。此应用程序中有多个java文件。
BingoFinal.java - 主文件。这是程序运行时运行的。 Bingo_Card.java - 创建Bingo卡,将其打印到STD,并检查宾果 BingoBG.java - 使用2D图形绘制GUI的背景 DrawBingoCard.java - 调用BingoBG并使用板值创建25个标签。当Bingo_Card找到匹配的号码(由STD IN输入)时,它不再打印该号码,并打印Chip.png(与java文件位于同一个包文件夹中),一个宾果芯片图像,使其看起来被覆盖。 / p>
当我通过NetBeans运行它时,这完美无缺,但是当我清理并构建它,然后在终端中运行jar时,除了显示宾果芯片图像外,一切都正常。有人知道为什么会这样吗?
编辑:这是我加载图片的方式
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
答案 0 :(得分:3)
您应该使用以下网址访问images
ImageIcon chip = new ImageIcon(ClassName.class.getResource("/chip75.png"))
可以在info page tag: embedded-resource上找到更多信息。images
链接中提到了有关向NetBeans
项目添加info-page
的详细答案。
更重要的是,使用ImageIO.read是明智的,因为至少它会让你知道,如果出现问题,可以抛出IOException
Throws:
IllegalArgumentException - if input is null.
IOException - if an error occurs during reading.
另一方面, ImageIcon
将隐藏exception
(如果有): - )
答案 1 :(得分:0)
将图像文件复制到jar中或提供图像文件的绝对路径