gpt4 book ai didi

Java swing,使用 Eclipse 从数据库中检索图像时出错

转载 作者:搜寻专家 更新时间:2023-10-30 23:43:46 27 4
gpt4 key购买 nike

Error: java.lang.NullPointerException at javax.swing.ImageIcon.(Unknown Source) at Show$2.actionPerformed(Show.java:79)

我认为问题出现在 BufferedImage 中,是否有任何其他选项可以从数据库中检索图像(Blob)。我正在使用 Sqlite 数据库。

这里是代码:

public class Show extends JFrame {

private JPanel contentPane;
private JTextField id;
BufferedImage bufImg = null;
JLabel img=null;
InputStream in=null;
ImageIcon imgs=null;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Show frame = new Show();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
Connection con=null;
public Show() {
con=dB.Connect();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 588, 432);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

id = new JTextField();
id.setBounds(158, 23, 86, 20);
contentPane.add(id);
id.setColumns(10);

JButton show = new JButton("New button");
show.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
//String iid=null;
//iid="10";
//iid=id.getText().toString();
String q="select image from image where id='"+id.getText()+"'";

PreparedStatement ps=con.prepareStatement(q);
//ps.setString(1, id.getText().trim());
//ps.executeQuery();
ResultSet rs=ps.executeQuery();

while (rs.next()) {
in= rs.getBinaryStream("image");
bufImg = ImageIO.read(in);
img.setIcon(new ImageIcon(bufImg));// Console shows the error is in this line
}
rs.close();
ps.close();

}catch(Exception c)
{
c.printStackTrace();
}
}
});
show.setBounds(302, 22, 89, 23);
contentPane.add(show);

img = new JLabel("");
img.setBounds(151, 99, 325, 284);
contentPane.add(img);
}

}

最佳答案

似乎无法识别图像的数据格式( This is the only time ImageIO returns null )。但是,由于图像是 supported format (PNG),这是一个非常奇怪的事件。我找到了 PNG loading bug在 Oracle 错误跟踪器上,但是该错误在 2006 年被标记为已解决。

我最好的建议是尝试使用第 3 方图像库,例如 Commons Imaging , Sixlegs ,或许多其他。

关于Java swing,使用 Eclipse 从数据库中检索图像时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31751677/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com