问题描述
我想搜索图像并将其显示在JLabel
(标签名称为tampilFoto
)中,然后将其保存为长blob到数据库中并且可以正常工作,并且当我想在用户单击JTable
(表的名称为tblBalon
)时显示标签,但是图像没有显示,并且单击标签时也没有显示错误。
private void tblFotoActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
String sumberFile = f.getAbsolutePath();
sumberFoto.setText(sumberFile);
ImageIcon icon = new ImageIcon(sumberFile);
Image image = icon.getimage().getScaledInstance(tampilFoto.getWidth(),tampilFoto.getHeight(),Image.SCALE_SMOOTH);
tampilFoto.setIcon(icon);
}
private void tblBalonMouseClicked(java.awt.event.MouseEvent evt) {
try {
int row = tblBalon.getSelectedRow();
nim.setText(tblBalon.getValueAt(row,1).toString());
nama.setText(tblBalon.getValueAt(row,2).toString());
fakultas.setSelectedItem(tblBalon.getValueAt(row,3).toString());
prodi.setSelectedItem(tblBalon.getValueAt(row,4).toString());
noUrut.setSelectedItem(tblBalon.getValueAt(row,5).toString());
calon.setSelectedItem(tblBalon.getValueAt(row,6).toString());
visi.setText(tblBalon.getValueAt(row,7).toString());
misi.setText(tblBalon.getValueAt(row,8).toString());
sumberFoto.setText(tblBalon.getValueAt(row,9).toString());
String tampil = "SELECT * FROM databalon WHERE idBalon='"+row+"';";
ResultSet rst = stk.executeQuery(tampil);
byte[] image =null;
if(rst.next()){
Blob img = rst.getBlob("foto");
image = img.getBytes(1,(int)img.length());
BufferedImage imag = ImageIO.read(new ByteArrayInputStream(image));
ImageIcon ft = new ImageIcon(imag);
tampilFoto.setIcon(RImage(ft));
}
} catch (sqlException | IOException ex) {
Logger.getLogger(PanitiaDataBalon.class.getName()).log(Level.SEVERE,null,ex);
}
this.btnHapus.setEnabled(true);
this.btnUbah.setEnabled(true);
this.btnTambah.setEnabled(false);
this.btnBatal.setEnabled(true);
}
我的代码有问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)