在我的工程中有一个放图片的文件夹picture,我要在一个frame的JLabel组件上显示一张picture中的图片,具体图片名称由一个   字符串s+".jpg"   指定,请教怎么实现?(要求使用相对路径)
另外我用className.class.getResource("/")可以获得一个类所在位置的地址,但是一旦将所获得的路径转换为string,再+"picture"获得新的字符串,但是这个串不被系统认为是一个目录,不知道为什么?如果要实现又该如何?(这个应该和上面的是同一问题吧)
先感谢下!!!

解决方案 »

  1.   

    JLabel上显示图片没有问题吧你现在的问题是不是取不到图片?你说的相对路径是不是相对于程序所在路径。className.class.getResource("/")只可以取资源文件,对于程序外的文件是不可以的。
    你直接通过new ImageIcon(String path)来取图片,path可以使相对路径也可以是绝对路径
      

  2.   

    把图片放到.CLASS文件一起 用GETRESOURCE或直接用相对路径 new ImageIcon(String path)
      

  3.   

    我也不知道JLabel上能否显示图片,不知道应该用什么?还请教!!(以前用vb用imagebox这个空间)
    我现在图片较多,不便于和.class放在一起,.class和一些其他的类放在单独一个文件夹内
    比如现在的图片目录是"E:\\eclipse3.2.1\\WorkSpace\\PhaseDiagram\\picture",PhaseDiagram是我的工程名,如果想用相对路径同样获得这个路径应该怎么做呢?
      

  4.   

    第二个问题解决了!使用System.getProperty("user.dir")就可以获得当前工程的路径,再+"picture"就可以得到图片的存放路径
    感谢fool_leave和lixiaoxue85的回答
    另外问下在java的swing中用什么组件较适于显示图片?
      

  5.   

    JLabel就可以
    JLabel l;
    l.setIcon(Icon icon);
    将你的ImageIcon直接传进去就可以
    或者自己继承JPanel做一个图片显示panel
      

  6.   

    如果我想根据JLabel的大小来调节显示的图片的大小,即要显示图片的全部,由使得图片充满整个JLabel该怎么做?
      

  7.   

    JLabel就可以
    JLabel l;
    l.setIcon(Icon icon);
    将你的ImageIcon直接传进去就可以
    或者自己继承JPanel做一个图片显示panel=============================
    NullPointException
      

  8.   

    java里面不能像vb那样使图片自动根据容器的大小调整自己的大小么?