将图像添加到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的新文件夹放在任何你想隐藏的地方。