作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的代码:
private void okActionPerformed(java.awt.event.ActionEvent evt)
{
try {
String Update = name.getText();
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connection = DriverManager.getConnection("jdbc:odbc:NewPData");
PreparedStatement psmnt = connection.prepareStatement("SELECT Image FROM Table1 where Name='" + Update + "'");
ResultSet rs = psmnt.executeQuery();
Blob blob = rs.getBlob("Image");
int b;
InputStream bis = rs.getBinaryStream("Image");
FileOutputStream f = new FileOutputStream("Image.jpg");
while ((b = bis.read()) >= 0) {
f.write(b);
}
f.close();
bis.close();
icon = new ImageIcon(blob.getBytes(1L, (int) blob.length()));
lblImage.setIcon(icon);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
异常显示:
java.lang.UnsupportedOperationException
我首先将图像存储在 ms access 中,现在我想将其显示在标签上。请帮忙。
最佳答案
这部分代码没有意义。
Blob blob = rs.getBlob("Image");
int b;
InputStream bis = rs.getBinaryStream("Image");
FileOutputStream f = new FileOutputStream("Image.jpg");
while ((b = bis.read()) >= 0) {
f.write(b);
}
f.close();
bis.close();
icon = new ImageIcon(blob.getBytes(1L, (int) blob.length()));
您基本上将 BLOB 从结果集中读取到文件中,然后尝试再次读取它以构建图像。您可能已耗尽该流。
为什么不直接读取图像呢?
icon = new ImageIcon("Image.jpg");
更好的是,为什么不利用 ImageIO
API 直接读取流,而无需写出临时文件?
BufferedImage image = ImageIO.read(bis);
icon = image == null ? null : new ImageIcon(image);
关于java - 如何在java netbeans中显示从ms access到jpanel的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13833089/
我是一名优秀的程序员,十分优秀!