Data was saved without image, while trying get image from MySQL to jLabel by tableMouseClicking, I have this error "
Cannot read the array length because "buf" is null
"
How Can I avoid this error?
What I have tried:
private void rasmActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter imageFNEF = new FileNameExtensionFilter("IMAGES", "png", "jpeg", "jpg");
chooser.setFileFilter(imageFNEF);
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
String filename = f.getAbsolutePath();
ImageIcon imageIcon = new ImageIcon(new ImageIcon(filename).getImage().getScaledInstance(imgoq.getWidth(), imgoq.getHeight(), Image.SCALE_DEFAULT));
imgoq.setIcon(imageIcon);
try {
File image = new File(filename);
FileInputStream fis = new FileInputStream(image);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
for (int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum);
}
person_image = bos.toByteArray();
} catch (IOException e) {
JOptionPane.showMessageDialog(null, e);
}
}
private Image ScaledImage(byte[] img, int w, int h) {
BufferedImage resizedImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
try {
Graphics2D g2 = resizedImage.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
ByteArrayInputStream in = new ByteArrayInputStream(img);
BufferedImage bImageFromConvert = ImageIO.read(in);
g2.drawImage(bImageFromConvert, 0, 0, w, h, null);
g2.dispose();
} catch (IOException ex) {
}
return resizedImage;
}
private void getValue() {
try {
String add1 = rs.getString("oqid");
oq_id.setText(add1);
String add2 = rs.getString("oqismi");
oq_ism.setText(add2);
String add3 = rs.getString("oqfam");
oq_fam.setText(add3);
String add4 = rs.getString("oqtr");
oq_tr.setText(add4);
String add5 = rs.getString("oqman");
oq_man.setText(add5);
String add9 = rs.getString("oqfan");
oq_kurs.setSelectedItem(add9);
byte[] imageData = rs.getBytes("oqrasm");
format = new ImageIcon(ScaledImage(imageData, imgoq.getWidth(), imgoq.getHeight()));
imgoq.setIcon(format);
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
private void teacher_tableMouseClicked(java.awt.event.MouseEvent evt) {
try {
int row = teacher_table.getSelectedRow();
String tableClick = (teacher_table.getModel().getValueAt(row, 0).toString());
String sql = "select * from oqituvchi where oqid= '" + tableClick + "' ";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
if (rs.next()) {
getValue();
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
}