如何检索图像从项目目录到jlabel?

时间:2019-03-14 12:16:37

标签: java

我是Java NetBeans 8的新用户。我想将employee插入sql server DB。我使用jlabel显示选定的图像,并且jlabel具有用户的本地背景。在src中的BG商店中,在src中,我创建Image文件夹,在Image文件夹中,我有一个名为24的文件夹。在24文件夹中,我存储了bg图像namce employeebg.png。

我需要在插入后将所有文本清除,并将jlabel / lbpicture返回到employeebg.png。

我使用此代码。

        private String getpath=null;
        private byte[] image=null;
        private File opt=null;
        private FileInputStream FIS;


         try{
            getpath = "\\Image\\24\\employeebg.png";
            opt = new File(getpath);
            FIS=new FileInputStream(opt);
            ByteArrayOutputStream array = new ByteArrayOutputStream();
            byte[] imagedata=new byte[1024];
            for(int readnum;(readnum = FIS.read(imagedata)) !=-1;){
                array.write(imagedata,0,readnum);                    
            }
            image = array.toByteArray();
            format = new ImageIcon(array.toByteArray());
            Image img = format.getImage().getScaledInstance(lbpicture.getWidth(),lbpicture.getHeight(),Image.SCALE_SMOOTH);
            ImageIcon imgicon=new ImageIcon(img);
            lbpicture.setIcon(imgicon);

    }catch(Exception e){
        e.printStackTrace();
    }

什么是最好的方法?

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您应该从类路径中获取图像:

...

try{
    ClassLoader cl = Thread.currentThread().getContextClassLoader();
    Image image = ImageIO.read(cl.getResource("/Image/24/employeebg.png"));
    Image img = image.getScaledInstance(lbpicture.getWidth(),lbpicture.getHeight(),Image.SCALE_SMOOTH);
    ImageIcon imgicon=new ImageIcon(img);
    lbpicture.setIcon(imgicon);

}catch(Exception e){
    e.printStackTrace();
}

...

更新

要将资源添加到您的netbeans项目中,请在项目的根目录中创建一个目录“ resources”。然后将其添加为源包文件夹,如下所示:

  • 在“项目资源管理器”中右键单击您的项目,在下拉菜单中选择“属性”,
  • 在“源”类别中,单击“源包文件夹”列表右侧的“添加文件夹...”按钮,然后选择刚刚创建的“资源”文件夹,
  • 点击“确定”,
  • 将文件夹“ Image”移到“ resources”文件夹中。