akb*_*ggs 2 java swing jar image
创建应用程序的JAR时,不再显示应用程序中的图像.我们加载图片的代码示例如下:
ImageIcon placeHolder = new ImageIcon("src\\Cards\\hidden.png");
Run Code Online (Sandbox Code Playgroud)
我们不知道为什么会这样.如果我们不将它压缩到JAR,应用程序将按预期运行; 作为JAR,图像就会消失.我们还尝试使用URL而不是ImageIcons,但这只会导致程序根本不运行.
有任何想法吗?
编辑:我们正在将图像文件放入正确路径的JAR文件中,这不是问题所在.
检查您正在调用的构造函数的API .传入的字符串是文件路径 - 当资源打包在JAR中时,文件系统上没有包含图像的文件,因此您不能再使用此构造函数.
相反,您需要使用类加载器从流中加载资源,并将它们拉入字节数组:
byte[] buffer = new byte[IMAGE_MAX_SIZE];
InputStream imageStream = getClassLoader().getResourceAsStream("src\Cards\hidden.png");
imageStream.read(buffer, 0, IMAGE_MAX_SIZE);
ImageIcon placeHolder = new ImageIcon(buffer);
Run Code Online (Sandbox Code Playgroud)
当然,需要更多例外和边缘案件处理,但这是它的要点.
| 归档时间: |
|
| 查看次数: |
8184 次 |
| 最近记录: |