javafx - 使用大量图像部署 JavaFX 应用程序的最佳方式
问题描述
我对java相当陌生。我编写了一个应用程序,它基本上有一个 50x50 的按钮网格,每个按钮打开一个与该按钮相关的特定图像。图像存储在我的文件系统中。
该应用程序在 Netbeans 中完美运行,每个按钮都会打开正确的图像。
我现在想导出该应用程序以便能够与一些感兴趣的人分享它 - 但是我不确定这样做的最佳方法是什么。我已经在谷歌上搜索了好几天,但没有找到任何真正回答我问题的东西。
我更喜欢的是:用户安装/解压缩/无论应用程序,结果留下一个包含所有图像文件的文件夹(其中很多,大小约为 1Gb)和一个可运行文件,最好是.exe 运行程序。
实现这样的目标的最佳方法是什么?
起初我在考虑将所有图像文件包含在一个可运行的 JAR 中。这种方法的问题是我必须重写我的代码,因为现在我的代码使用 java.io.File 来获取图像,据我所知,这在 JAR 中不起作用。此外,我更喜欢 .exe 而不是 JAR。
任何帮助将不胜感激!
解决方案
现在我的代码使用 java.io.File 来获取图像
您是说您使用 java.io.File 来获取可用图像的列表,还是使用它来读取图像?
如果您需要 jar 中的图像或资源列表,请查看“如何列出 JAR 文件中的文件?”
要使用 JavaFX 从 jar 中读取图像,您只需要获取图像的 URL:
import javafx.scene.image.Image;
URL url = getClass().getResource("/path/inside/jar/myimage.png");
Image image = new Image(url.toExternalForm(), true);
至于部署该应用程序的最佳方式……我想说一个 1GB 的应用程序是一头野兽。您能否将图像托管在 Web 服务器上并让应用程序在需要显示时延迟获取图像?
推荐阅读
- opengl - OpenGL会在glInvalidBufferSubData()之后释放BO的部分吗?
- android - 如何使用 GridLayoutManager 从 recyclerView 动态设置 Item 的跨度大小?
- django - 为什么 Heroku 在我部署 Django 应用程序时给我一个 H10 错误
- angular - 制作角度图像裁剪器功能
- insert - 插入语句内的表中的自动增量 ID
- python - 尝试重置密码时出现 Djongo + Django + MongoDB Atlas DatabaseError
- python - AssertionError: [101, 1203, 1365, 1137, 8601, 117, 4835, 1104, 1141, 1292, 119, 102, 0, 0, 0, 0, 0, 0, 0, 0] 不是
- c++ - 为什么复制初始化需要 C++17 中的析构函数并保证移动/复制省略?
- python - 创建 Pandas.Dataframe 时如何保持索引中的顺序
- javascript - 仅将 .map() 方法用于副作用是否合法?