我将访客的图像和其他详细信息存储到表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);
请帮帮我。
答案 0 :(得分:2)
如果您花一些时间阅读API文档,那就非常简单了:
Blob有一个getBinaryStream(),它返回一个包含blob中存储数据的字节流。
实现Icon的ImageIcon有一个constructor,它将一个字节数组作为参数。
JLabel有setIcon(Icon)方法。
因此,读取从Blob二进制流到字节数组的所有内容,使用此字节数组构造ImageIcon,并使用此ImageIcon作为参数调用标签setIcon方法。