我有一个小小的要求,请帮助我首先,我有一个标签,我为这个标签设置了一个图标
lbl_photo。setIcon(新javax.swing.ImageIcon (getClass () .getResource (/图片/photo.png))),
和我有一个按钮浏览选择图像。
private void btn_browseActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"jpeg, gif and png files", "jpg", "gif", "png");
int i = chooser.showOpenDialog(this);
if (i == JFileChooser.APPROVE_OPTION) {
image = chooser.getSelectedFile();
try {
BufferedImage originalImage = ImageIO.read(image);
int type = originalImage.getType() == 0 ? BufferedImage.TYPE_INT_ARGB
: originalImage.getType();
BufferedImage resizeImageJpg = resizeImage(originalImage, type);
photo = new ImageIcon(toImage(resizeImageJpg));
raster = resizeImageJpg.getRaster();
data = (DataBufferByte) raster.getDataBuffer();
} catch (Exception e) {
System.out.println(e.getMessage());
}
lbl_photo.setIcon(photo);
}
}
现在,我将从浏览按钮中选择的图像存储到数据库
Date date1 = new Date();
Timestamp timestamp1 = new Timestamp(date1.getTime());
String sql4 = "insert into std_photos values(?,?,?)";
pstmt5 = con.prepareStatement(sql4);
pstmt5.setInt(1, Integer.parseInt(txt_eno.getText()));
pstmt5.setString(2, "");
pstmt5.setTimestamp(3, timestamp1);
byte[] extractBytes = data.getData();
pstmt5.setBytes(2, extractBytes);
System.out.println(sql4);
图像已成功存储。但是,如果用户没有通过浏览按钮选择图像,则应该将默认的jlabel图标存储在数据库中。请尽早帮助我
您已经在为JFileChooser.APPROVE_OPTION
检查chooser.showOpenDialog(this)
的返回值。
如果你收到一些其他的选项,或者如果try-catch
块读取新图像失败,你可以得到旧的图标,并将其写入数据库