如何将blob图像指定给JLabel

时间:2012-06-03 06:39:28

标签: java mysql swing netbeans-7

我将访客的图像和其他详细信息存储到表tbl_visitor中。代码如下,

    String string_op="F:\\POSTERS\\Roses\\TROPIC4.png"; 
    File imageFile = new File(string_op);
    FileInputStream fis = new FileInputStream(imageFile);

    String queryVis="insert into tbl_visitor(visitor_name,contact_no," +
            "job_profile,org_name,photo_id_proof,type_of_visitor,date," +
            "extra_people,image) values('"+
            name_of_visitor.getText()+"','"+
            contact_num.getText()+"','"+
            job_profile.getText()+"','"+
            org.getText()+"','"+
            photo_id_num.getText()+"','"+
            type_of_visitor.getSelectedItem().toString()+"','"+
            date_and_time.getText()+"','"+
            tf1.getText()+"','"+
            "fis,(int)imageFile.length()"+"')"; 

现在我想在JFrame上显示图像并使用JLabel显示图像 但我无法将图像分配给JLabel。我已经尝试使用以下代码来显示图像,但它给了我错误。

Blob image_vis = rs1.getBlob(10);
image_cap.setIcon(image_vis);

请帮帮我。

1 个答案:

答案 0 :(得分:2)

如果您花一些时间阅读API文档,那就非常简单了:

Blob有一个getBinaryStream(),它返回一个包含blob中存储数据的字节流。

实现Icon的ImageIcon有一个constructor,它将一个字节数组作为参数。

JLabel有setIcon(Icon)方法。

因此,读取从Blob二进制流到字节数组的所有内容,使用此字节数组构造ImageIcon,并使用此ImageIcon作为参数调用标签setIcon方法。