Как показывают изображения, которые уже сохранены на jtable, выполните следующие действия (с использованием баз данных sllite) в "jlabel"?
Я создаю систему, в которую пользователь может загрузить изображение и сохранить его через базу данных SQLite. Однако он уже сохраняется, я не знаю, как обновить Jlabel, где вы можете увидеть изображение, которое уже сохранено, а также имя изображения в поле JTextfield. Как я могу это сделать?
Что я уже пробовал:
Ниже приведен код моих кнопок:
private void tblTableMouseClicked(java.awt.event.MouseEvent evt) { int row = tblTable.getSelectedRow(); String selection = tblTable.getModel().getValueAt(row, 0).toString(); String sql = "select * from LibrarySystemDatabase where No = " + selection; try { pst = conn.prepareStatement(sql); rs = pst.executeQuery(); if (rs.next()) { txtNo.setText(rs.getString("No")); txtTitle.setText(rs.getString("Title")); txtAuthor.setText(rs.getString("Author")); txtGenre.setText(rs.getString("Genre")); txtLexile.setText(rs.getString("Lexile")); txtPoints.setText(rs.getString("Points")); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } finally { try { rs.close(); pst.close(); } catch (Exception e) { } } } private void tblTableKeyReleased(java.awt.event.KeyEvent evt) { int row = tblTable.getSelectedRow(); String selection = tblTable.getModel().getValueAt(row, 0).toString(); String sql = "select * from LibrarySystemDatabase where No = " + selection; try { pst = conn.prepareStatement(sql); rs = pst.executeQuery(); if (rs.next()) { txtNo.setText(rs.getString("No")); txtTitle.setText(rs.getString("Title")); txtAuthor.setText(rs.getString("Author")); txtGenre.setText(rs.getString("Genre")); txtLexile.setText(rs.getString("Lexile")); txtPoints.setText(rs.getString("Points")); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } finally { try { rs.close(); pst.close(); } catch (Exception e) { } } } private void btnDeselectActionPerformed(java.awt.event.ActionEvent evt) { clearFields(); updateTable(); } private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) { String sql = "UPDATE LibrarySystemDatabase" + " SET Title = ?" + ", Author = ?" + ", Genre = ?" + ", Lexile = ?" + ", Points = ?" + ", Image = ?" + " WHERE No = ?"; try (PreparedStatement pst = conn.prepareStatement(sql)) { pst.setString(1, txtTitle.getText()); pst.setString(2, txtAuthor.getText()); pst.setString(3, txtGenre.getText()); pst.setString(4, txtLexile.getText()); pst.setString(5, txtPoints.getText()); pst.setString(6, txtNo.getText()); int count = pst.executeUpdate(); JOptionPane.showMessageDialog(null, count + " Records Updated"); updateTable(); clearFields(); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } finally { try { rs.close(); pst.close(); } catch (Exception e) { } } } private void btnUploadActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser chooser = new JFileChooser(); chooser.showOpenDialog(null); File f = chooser.getSelectedFile(); lblImage.setIcon(new ImageIcon(f.toString())); filename = f.getAbsolutePath(); txtImageName.setText(filename); 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); } bookImage = bos.toByteArray(); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } private void btnInsertActionPerformed(java.awt.event.ActionEvent evt) { String sql = "INSERT INTO LibrarySystemDatabase(No, Title, Author, Genre, Lexile, Points, Image) VALUES(?,?,?,?,?,?,?)"; try { pst = conn.prepareStatement(sql); pst.setString(1, txtNo.getText()); pst.setString(2, txtTitle.getText()); pst.setString(3, txtAuthor.getText()); pst.setString(4, txtGenre.getText()); pst.setString(5, txtLexile.getText()); pst.setString(6, txtPoints.getText()); pst.setBytes(7, bookImage); pst.execute(); JOptionPane.showMessageDialog(null, "Inserted Successfully"); updateTable(); clearFields(); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } finally { try { rs.close(); pst.close(); } catch (Exception e) { } } }
ZurdoDev
Я не знаю Java, но сомневаюсь, что JLabel может отображать изображение, не так ли?
Catey Category
Когда я дублирую ваш метод добавления изображения к JLabel, он отлично работает для меня. Вы проверили, является ли путь правильным? Если я нарушу путь в своем коде, это не вызовет ошибки. Он просто не будет показывать изображение. Может быть, это то, что вы испытываете.