Darwin Ramos Ответов: 0

Как показывают изображения, которые уже сохранены на 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, он отлично работает для меня. Вы проверили, является ли путь правильным? Если я нарушу путь в своем коде, это не вызовет ошибки. Он просто не будет показывать изображение. Может быть, это то, что вы испытываете.

0 Ответов