将图像添加到JAR Java
我在JFrame
使用了一些图像,我已经给出了加载图像到框架面板的path,但是当我把应用程序的jar子不显示图像。
我应该在哪里放置图像?
我应该如何指定path?
setIconImage(Toolkit.getDefaultToolkit().getImage( "D:\\RFT\\src\\dailogBox\\dump.jpg"));
像我这样做了。
第一步:将您的图像放入JAR文件中的指定位置。 如果你把它放到src文件夹中,也许你的IDE或者你的构build工具会自动把它打包到JAR中。 否则,请检查IDE / build-tool的文档,在哪个位置放置它。
第二步:从您的程序访问该文件。 我假设你把它放在包(JAR中的path)package1 / package2中,文件名为dump.jpg。 在这种情况下你可以打电话
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/package1/package2/dump.jpg")));
getClass()。getResource(…)将返回类path上资源的URL。 你使用'/'在类path中启动path,并使用完整path/软件包到你的资源中,用'/'分开。
这是处理JAR应用程序中所有图像和图标的最佳方式。
将所有图像和图标压缩到自己的JAR文件中之后 – 通过将图像JAR文件添加到库选项卡中,使其现在包含在类path中,从而configuration构buildpath。
然后,只需在构造函数的开始处使用以下3行代码 ,即可访问任何包含不接受简单ImageIcon作为主图标(我知道奇怪)的SystemTray图像的任何图像。 3x线是:
URL iconUrl = this.getClass().getResource("/image-iconb.png"); Toolkit tk = this.getToolkit(); someimgicon = tk.getImage(iconUrl);
(someimgicon只是一个声明为Imagevariables的构造函数) 现在,您可以像下面这样简单地设置一个窗口图标:
setIconImage(someimgicon);
同时通过声明设置System TrayIcon来使用相同的variables:
trayIcon = new TrayIcon(someimgicon, "SystemTray Demo", popupMenu);
以上允许您轻松而集中地声明图像或ImageIcons,而不会将图像资源保存在正确的位置。 它保持了它的整洁,JAR包含所有的图像在运行时自动编译和分发你的程序。
作为奖励 ,一旦JAR在您的类path中注册 – 您可以随时在同一个JAR中添加任何其他图像,而无需大惊小怪 – 一切正常,所添加的图像即刻可用于您的应用程序。
我认为更好。
首先在Source Packages下创build一个包(说出图片)
把你所有的图像拷贝到这个包里(当你创build一个包的时候,你的包名称中的一个文件夹将被创build在你的项目的src文件夹中,所以把图像复制到它)
您可以从程序访问您的图像
例1:
this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("http://img.dovov.comyourimagename")));
例2:
URL imageurl = getClass().getResource("http://img.dovov.comimagename");//assuming your package name is images Image myPicture = Toolkit.getDefaultToolkit().getImage(imageurl); JLabel piclabel = new JLabel(new ImageIcon( myPicture )); piclabel.setBounds(0,0,myPicture.getWidth(null),myPicture.getHeight(null));
现在使用这个JLabel piclabel
有很多方法,例如在你的jar文件中创build一个名为resources的文件夹,并使用相对path从那里引用你的图像。
将jar中的图像添加为资源,然后(假设该jar在你的类path中),使用类加载器将其作为stream加载 。
在NetBeans 8.1中,我所做的是在项目文件的src文件夹中包含名为Resources的图标和其他图像文件夹。 所以每当我build立jar文件的文件夹都包含在那里。文件树应该是这样的:
- src(源文件中的Java文件在这里)
**您在项目中提名的包裹**
- file.java
资源
- image.jpg的
代码应该是这样的:
jToggleButton1.setIcon(new javax.swing.ImageIcon(this.getClass().getResource("/resources/image.jpg")));
简单的方法是将图像文件夹与jar文件并行。 例:
在代码中说,你叫这样的图像:
pic = new ImageIcon("Pics/buttonpic.jpg");
这意味着您的图片将被称为buttonpic,并位于项目目录中名为Pics的文件夹中。 现在,在创buildjar文件后,将该Pics文件夹复制到jar文件所在的文件夹中。
例如:如果您的jar文件位于桌面上,则将Pics文件夹放在桌面上。 现在,当您运行jar文件时,您的照片将正常工作。 现在为了掩饰你需要在你的jar文件旁边有你的Pics文件夹的事实,你可以创build一个新的文件夹,并把你的jar文件夹和Pics文件夹放在该文件夹中。 然后右键单击该jar并创build一个快捷方式,然后将该快捷方式放在桌面上,或者只需要jar文件,然后将您创build的新文件夹放在任何你想隐藏的地方。