Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将blob映像分配给JLabel_Java_Mysql_Swing_Netbeans 7 - Fatal编程技术网

Java 如何将blob映像分配给JLabel

Java 如何将blob映像分配给JLabel,java,mysql,swing,netbeans-7,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

我正在将访问者的图像和其他详细信息存储到表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);

请帮帮我。

如果您花些时间阅读API文档,这将非常简单:

Blob有一个返回包含Blob中存储的数据的字节流的

ImageIcon实现了Icon,它有一个以字节数组为参数的

JLabel有一个方法


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

那么,setIcon方法的参数类型必须是ImageIcon类型。因此,我会尝试将水滴投射到ImageIcon。但我不能100%确定这是否可行,因为我对Blob类不太熟悉。单个代码行>400个字符宽?!?你的显示器一定很宽。为了我们其他人的利益,请在SO引入滚动条之前强制换行。另请参阅此可能的副本:谢谢您的解决方案。你能通过编码来详细说明这一点吗??提前谢谢。我不会为你做任何事,不会。谷歌的“Java IO教程”会帮助你理解如何从输入流读取到字节数组,或者使用Guava为你做这件事。剩下的是三行代码。T尝试了此代码,但它不显示imageBlob image_vis=rs1.getBlob(10);ObjectInputStream ois=null;ois=新的ObjectInputStream(image_vis.getBinaryStream());ImageIcon image=(ImageIcon)ois.readObject();我的回答根本没有告诉你要这么做。它说:将Blob二进制流中的所有内容读入字节数组。使用这个字节数组构造一个ImageIcon(我甚至链接到了您必须使用的构造函数)。代码假定blob中存储了一个序列化的ImageIcon对象,但实际情况并非如此。真的那么难吗?以下是(使用Guava)所需的全部代码:
label.setIcon(新的ImageIcon(ByteStreams.toByteArray(blob.getBinaryStream()))