imageicon怎么设置图片大小,image保存标尺

  imageicon怎么设置图片大小,image保存标尺

  一.问题

  image icon icon=new image icon( a . gif );

  执行结果是图标无法显示。

  第二,解决

  该类中有以下调用:

  image icon icon=new image icon( a . gif );

  很自然的认为当前的类文件和图片在同一个路径。

  其实所谓相对路径起点就是项目的根,也就是project。

  当这一行代码被执行时,它在项目目录中查找一个名为a.gif的文件,但是找不到。

  如果您的项目根目录是:project1

  您的图片文件位于:project1/src/images/a.gif。

  所以正确的说法是:

  image icon icon=new image icon( src/images/a . gif );

  当执行这一行代码时,可以在项目目录中找到该文件,也可以写成

  ImageIcon icon=new ImageIcon(。/src/images/a . gif );

  请注意两者之间的区别,并记住src是project下的目录。

  总结起来就是一句话:所谓相对路径,就是相对于项目根目录的位置_

  三。其他人

  看看ImageIcon的构造函数。

  公共图像图标(字符串文件名)//参数可以是绝对的,也可以是相对的。

  公共图像图标(URL url)

  第二种方式是通过URL获取图片。

  URL url=getClass()。get resource( a . gif );//找到当前编译后的类文件所在的目录

  ImageIcon icon=新的image icon(URL);

  问题讨论:

  这类问题的原因多是路径问题,往往在项目中可以正常运行,但是一旦打包成Jar就无法正常显示了。以下是对此类问题的解决方案的总结:

  首先,通过使用外部资源文件来解决它。

  将项目打包生成Jar后,新建一个文件夹,将项目中用到的所有镜像文件和生成的Jar文件都放在这个目录下,只要代码对镜像文件的引用路径正确,比如:ImageIcon。

  image=new image icon(swing resource manager . getimage( icons/logo . gif );去做吧。

  这样,图片文件和类文件不是放在一起放在包里,类文件在包里,图片文件在项目的根目录里。

  第二,通过使用内部资源文件。

  将使用过的图片文件放入项目使用的包中,打包时同时将图片文件输入到Jar文件中。此方法应在特定代码中使用以下内容之一:

  image icon image=new image icon(this . class . get resource( icons/logo . gif ));

  这种方法的详细解释如下:

  解决问题:

  当你写一个图形界面程序时,你必须使用各种图片资源。那么,当你发布你的程序时,你是如何发布这些图像资源的呢?最简单的方法就是把这些图片资源和你的类文件一起打包成一个可执行的jar文件,这样你只需要发布一个Jar文件就可以覆盖所有的内容,用户双击Jar文件就可以运行程序了。如果图片被打包在Jar文件中,那么在编写程序时如何访问它们呢?这些图片的路径是什么?可以使用getResource()方法解决这个问题。下面我们具体分析两种最常见的情况:

  1.你把所有资源打包成andy.jar,你的类位于一个包里:package andycpp你所有的图片资源都放在images文件夹中,images文件夹也位于andycpp包中。在这种情况下,最终路径如下:

  安迪加

  __andycpp

  __ GUITest.class

  __张图片

   _ _ Snap1.jpg

  因为图片文件夹和引用它的类是一级的,所以可以通过相对路径:getResource()方法访问,但是不能随便用。只能使用与图片文件夹同级的类的getResource()方法。例如,在上图中,GUITest类和images处于同一级别,因此应该使用该类的getResource()方法。

  2.另一方面,如果你有许多类,并且包结构复杂,那么你不太可能把图片和类放在同一个层次上。相反,您应该将图片放在最外层,并让所有类通过绝对路径访问图片:

  安迪加

  __andycpp

  __ GUITest.class

  __张图片

   _ _ Snap1.jpg

  代码如下:

  Java . net . URL imgURL=GUI test . class . get resource(/images/snap 1 . jpg );

  image icon img 1=new image icon(imgURL);

  你从上面的代码中看出区别了吗?区别很微妙,只是在“images”前面加了一个反斜杠/。这个反斜杠表示根目录,没有反斜杠表示相对路径。

  Java . net . URL imgURL=GUI test . class . get resource( images/snap 1 . jpg );

  image icon img 1=new image icon(imgURL);

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: