更新mutiples标签图标图像,保留未修改的标签图标

我的jframe上有6个带有图像图标的标签,以及其他文本字段和日期。我在UPDATE按钮上遇到一个问题,因为在更新其他任何内容时都无法保留内容标签图标。因此,每次我运行查询时,它将所有标签图标都设置为Null。

private void jButton14actionPerformed(java.awt.event.actionEvent evt) {                                          
    try {
    int row = table_booking.getSelectedRow();
    String value = (table_booking.getModel().getvalueAt(row,0).toString());
    String sql = "UPDATE Booking SET BookingCode=?,PatientName = ?,PatientAge = ?,LowerAbdomen = ?,UpperAbdomen = ?,"
            + " Waist = ?,Hips = ?,Arm = ?,UpperLeg = ?,BMI = ?,VisceralFat = ?,FatMass = ?,Before = ?,"
            + "Before_right=?,Before_left=?,Before_back=?,FurtherInformation = ?,Weight = ?,Rarm =?,rupperLeg =?,"
            + "Height = ?,Date = ?,LowerAbdomenResult=?,Upper_AbdomenResult=?,WaistResult=?,HipsResult=?,ArmResult=?,"
            + "RarmResult=?,UpperLagResult=?,rupperLegResult=?,BMIResult=?,VisceralFatResult=?,fmassResult=?,"
            + "WeightResult=?,DateResult=?,After = ?,After_right=?,After_left=?,After_back=? "
            + "where BookingCode="+value;
    pst = conn.prepareStatement(sql);
            pst.setInt(1,Integer.parseInt(text_code.getText()));
            pst.setString(2,text_name.getText());
            pst.setString(3,text_age.getText());
            pst.setString(4,text_lowerAdomen.getText());
            pst.setString(5,text_upperAbdomen.getText());
            pst.setString(6,text_waist.getText());
            pst.setString(7,text_hips.getText());
            pst.setString(8,text_arm.getText());
            pst.setString(9,text_upperLeg.getText());
            pst.setString(10,text_BMI.getText());
            pst.setString(11,text_visceralFat.getText());
            pst.setString(12,text_fatMass.getText());

            pst.setBytes(13,BeforePhoto);

            pst.setBytes(14,BeforePhotoRight);
            pst.setBytes(15,BeforePhotoLeft);
            pst.setBytes(16,BeforePhotoBack);
            pst.setString(17,text_furtherInformation.getText());
            pst.setString(18,text_weight.getText());
            pst.setString(19,text_Rarm.getText());
            pst.setString(20,text_rupperLeg.getText());
            pst.setString(21,text_height.getText());
            pst.setString(22,((JTextField)text_date.getDateEditor().getUiComponent()).getText());
            pst.setString(23,text_lowerAbdomenResult.getText());
            pst.setString(24,text_upperAbdomenResult.getText());
            pst.setString(25,text_waistResult.getText());
            pst.setString(26,text_hipsResult.getText());
            pst.setString(27,text_armResult.getText());
            pst.setString(28,text_RarmResult.getText());
            pst.setString(29,text_upperLegResult.getText());
            pst.setString(30,text_rupperLegResult.getText());
            pst.setString(31,text_BMIResult.getText());
            pst.setString(32,text_visceralFatResult.getText());
            pst.setString(33,text_fatMassResult.getText());
            pst.setString(34,text_weightResult.getText());
            pst.setString(35,((JTextField)text_dateResult.getDateEditor().getUiComponent()).getText());
            pst.setBytes(36,AfterPhoto);
            pst.setBytes(37,AfterPhotoRight);
            pst.setBytes(38,AfterPhotoLeft);
            pst.setBytes(39,AfterPhotoBack);

    pst.executeUpdate();
    //pst.execute();
    JOptionPane.showmessagedialog(null,"Updated");
    }catch (Exception e) {
        JOptionPane.showmessagedialog(null,e);            
        //e.printStackTrace();
    } finally {
        try {
            rs.close();
            pst.close();
        } catch(Exception e) {

        }
    }
   Update_Table();  
   FieldsCleaner();
}

我只需要像其他文本字段一样知道如何获取我的jlabel图标的内容,因此我可以在运行更新查询时保留它,因为当然,字节数组BeforePhoto,BeforePhotoRight,BeforePhotoLeft,BeforePhotoBack都会全部在我运行更新查询时为null。

这是我的JFileChooser函数:

private void cmd_insertBeforeactionPerformed(java.awt.event.actionEvent evt) {                                                 
    JFileChooser chooser = new JFileChooser();
    chooser.showOpenDialog(null);
    File f = chooser.getSelectedFile();
    filename = f.getabsolutePath();
    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,readNum);
        }
    BeforePhoto = bos.toByteArray();
    ImageIcon imageIcon = new ImageIcon(new ImageIcon(filename).getImage().getScaledInstance(label_before.getWidth(),label_before.getHeight(),Image.SCALE_SMOOTH));
    label_before.setIcon(imageIcon);
    } catch (Exception e) {
        JOptionPane.showmessagedialog(null,e);
       e.printStackTrace();

    } finally {
        try {
            rs.close();
            pst.close();
        } catch(Exception e) {

        }
    }

}

这是我的救助功能

private void jButton6actionPerformed(java.awt.event.actionEvent evt) {                                         
    try {
        String sql = "insert into Booking (BookingCode,PatientName,PatientAge,LowerAbdomen,UpperAbdomen,Waist,Hips,"
        + "Arm,UpperLeg,BMI,VisceralFat,FatMass,Before,Before_right,Before_left,Before_back,FurtherInformation,"
        + "Weight,Rarm,rupperLeg,Height,Date,LowerAbdomenResult,Upper_AbdomenResult,WaistResult,HipsResult,"
        + "ArmResult,RarmResult,UpperLagResult,rupperLegResult,BMIResult,VisceralFatResult,fmassResult,"
        + "WeightResult,DateResult,After,After_right,After_left,After_back) "
        + "values (?,?,?)";

    pst = conn.prepareStatement(sql);

            pst.setInt(1,text_fatMass.getText());
            pst.setBytes(13,BeforePhoto);  
            pst.setBytes(14,text_weightResult.getText());

            if(text_dateResult.getDate() == null){
                pst.setString(35,((JTextField)text_date.getDateEditor().getUiComponent()).getText());
            } else {
                pst.setString(35,((JTextField)text_dateResult.getDateEditor().getUiComponent()).getText());
            }

            pst.setBytes(36,AfterPhotoBack);

            pst.execute();
            JOptionPane.showmessagedialog(null,"Saved");
    }catch (Exception e) {
        JOptionPane.showmessagedialog(null,e);

    } finally {
        try {
            rs.close();
            pst.close();
        } catch(Exception e) {

        }
    }
   Update_Table();
   FieldsCleaner();

}                                        
ljm88888888 回答:更新mutiples标签图标图像,保留未修改的标签图标

请大家提供一些反馈。我进行了进一步的研究,可能使我的鳕鱼工作了。 如果您有任何更好的解决方案,请分享...

这是工作的结果

private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) {                                          
    try {
    int row = table_booking.getSelectedRow();
    String value = (table_booking.getModel().getValueAt(row,0).toString());
    String sql = "UPDATE Booking SET BookingCode=?,PatientName = ?,PatientAge = ?,LowerAbdomen = ?,UpperAbdomen = ?,"
            + " Waist = ?,Hips = ?,Arm = ?,UpperLeg = ?,BMI = ?,VisceralFat = ?,FatMass = ?,Before = ?,"
            + "Before_right=?,Before_left=?,Before_back=?,FurtherInformation = ?,Weight = ?,Rarm =?,RupperLeg =?,"
            + "Height = ?,Date = ?,LowerAbdomenResult=?,Upper_AbdomenResult=?,WaistResult=?,HipsResult=?,ArmResult=?,"
            + "RarmResult=?,UpperLagResult=?,RupperLegResult=?,BMIResult=?,VisceralFatResult=?,FmassResult=?,"
            + "WeightResult=?,DateResult=?,After = ?,After_right=?,After_left=?,After_back=? "
            + "where BookingCode="+value;
    pst = conn.prepareStatement(sql);
            pst.setInt(1,Integer.parseInt(text_code.getText()));
            pst.setString(2,text_name.getText());
            pst.setString(3,text_age.getText());
            pst.setString(4,text_lowerAdomen.getText());
            pst.setString(5,text_upperAbdomen.getText());
            pst.setString(6,text_waist.getText());
            pst.setString(7,text_hips.getText());
            pst.setString(8,text_arm.getText());
            pst.setString(9,text_upperLeg.getText());
            pst.setString(10,text_BMI.getText());
            pst.setString(11,text_visceralFat.getText());
            pst.setString(12,text_fatMass.getText());

            if (label_before.getIcon() != null){
            try {
                Icon icons = label_before.getIcon();
                BufferedImage bi = new BufferedImage(icons.getIconWidth(),icons.getIconHeight(),BufferedImage.TYPE_INT_RGB);
                Graphics g = bi.createGraphics();
                icons.paintIcon(null,g,0);
                g.setColor(Color.WHITE);
                g.drawString(label_before.getText(),10,20);
                g.dispose();
                ByteArrayOutputStream os = new ByteArrayOutputStream();
                ImageIO.write(bi,"jpg",os);
                InputStream fis = new ByteArrayInputStream(os.toByteArray());
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
                byte[] buf = new byte[1024];
                for (int readNum; (readNum = fis.read(buf)) != -1;) {
                    bos.write(buf,readNum);
                }
                byte[] bytes = bos.toByteArray();
                BeforePhoto = bytes;
            } catch (IOException d) {
                JOptionPane.showMessageDialog(rootPane,d);
            }
            pst.setBytes(13,BeforePhoto);
            } else 
                pst.setBytes(13,BeforePhoto);

            if (label_before_right.getIcon() != null){
            try {
                Icon icons = label_before_right.getIcon();
                BufferedImage bi = new BufferedImage(icons.getIconWidth(),0);
                g.setColor(Color.WHITE);
                g.drawString(label_before_right.getText(),readNum);
                }
                byte[] bytes = bos.toByteArray();
                BeforePhotoRight = bytes;
            } catch (IOException d) {
                JOptionPane.showMessageDialog(rootPane,d);
            }
            pst.setBytes(14,BeforePhotoRight);
            } else
                pst.setBytes(14,BeforePhotoRight);

            if (label_before_left.getIcon() != null){
            try {
                Icon icons = label_before_left.getIcon();
                BufferedImage bi = new BufferedImage(icons.getIconWidth(),0);
                g.setColor(Color.WHITE);
                g.drawString(label_before_left.getText(),readNum);
                }
                byte[] bytes = bos.toByteArray();
                BeforePhotoLeft = bytes;
            } catch (IOException d) {
                JOptionPane.showMessageDialog(rootPane,d);
            }
            pst.setBytes(15,BeforePhotoLeft);
            } else
                pst.setBytes(15,BeforePhotoLeft);

            if (label_before_back.getIcon() != null){
            try {
                Icon icons = label_before_back.getIcon();
                BufferedImage bi = new BufferedImage(icons.getIconWidth(),0);
                g.setColor(Color.WHITE);
                g.drawString(label_before_back.getText(),readNum);
                }
                byte[] bytes = bos.toByteArray();
                BeforePhotoBack = bytes;
            } catch (IOException d) {
                JOptionPane.showMessageDialog(rootPane,d);
            }                
            pst.setBytes(16,BeforePhotoBack);
            } else 
                pst.setBytes(16,BeforePhotoBack);

            pst.setString(17,text_furtherInformation.getText());
            pst.setString(18,text_weight.getText());
            pst.setString(19,text_Rarm.getText());
            pst.setString(20,text_RupperLeg.getText());
            pst.setString(21,text_height.getText());
            pst.setString(22,((JTextField)text_date.getDateEditor().getUiComponent()).getText());
            pst.setString(23,text_lowerAbdomenResult.getText());
            pst.setString(24,text_upperAbdomenResult.getText());
            pst.setString(25,text_waistResult.getText());
            pst.setString(26,text_hipsResult.getText());
            pst.setString(27,text_armResult.getText());
            pst.setString(28,text_RarmResult.getText());
            pst.setString(29,text_upperLegResult.getText());
            pst.setString(30,text_RupperLegResult.getText());
            pst.setString(31,text_BMIResult.getText());
            pst.setString(32,text_visceralFatResult.getText());
            pst.setString(33,text_fatMassResult.getText());
            pst.setString(34,text_weightResult.getText());
            pst.setString(35,((JTextField)text_dateResult.getDateEditor().getUiComponent()).getText());

            if (label_after.getIcon() != null) {
            try {
                Icon icons = label_after.getIcon();
                BufferedImage bi = new BufferedImage(icons.getIconWidth(),0);
                g.setColor(Color.WHITE);
                g.drawString(label_after.getText(),readNum);
                }
                byte[] bytes = bos.toByteArray();
                AfterPhoto = bytes;
            } catch (IOException d) {
                JOptionPane.showMessageDialog(rootPane,d);
            }
            pst.setBytes(36,AfterPhoto);
            } else
                pst.setBytes(36,AfterPhoto);

            if (label_after_right.getIcon() != null) {
            try {
                Icon icons = label_after_right.getIcon();
                BufferedImage bi = new BufferedImage(icons.getIconWidth(),0);
                g.setColor(Color.WHITE);
                g.drawString(label_after_right.getText(),readNum);
                }
                byte[] bytes = bos.toByteArray();
                AfterPhotoRight = bytes;
            } catch (IOException d) {
                JOptionPane.showMessageDialog(rootPane,d);
            }
            pst.setBytes(37,AfterPhotoRight);
            } else
                pst.setBytes(37,AfterPhotoRight);

            if (label_after_left.getIcon() != null) {
            try {
                Icon icons = label_after_left.getIcon();
                BufferedImage bi = new BufferedImage(icons.getIconWidth(),0);
                g.setColor(Color.WHITE);
                g.drawString(label_after_left.getText(),readNum);
                }
                byte[] bytes = bos.toByteArray();
                AfterPhotoLeft = bytes;
            } catch (IOException d) {
                JOptionPane.showMessageDialog(rootPane,d);
            }
            pst.setBytes(38,AfterPhotoLeft);
            } else
                pst.setBytes(38,AfterPhotoLeft);

            if (label_after_back.getIcon() != null) {
            try {
                Icon icons = label_after_back.getIcon();
                BufferedImage bi = new BufferedImage(icons.getIconWidth(),0);
                g.setColor(Color.WHITE);
                g.drawString(label_after_back.getText(),readNum);
                }
                byte[] bytes = bos.toByteArray();
                AfterPhotoBack = bytes;
            } catch (IOException d) {
                JOptionPane.showMessageDialog(rootPane,d);
            }
            pst.setBytes(39,AfterPhotoBack);
            } else
                pst.setBytes(39,AfterPhotoBack);

    pst.executeUpdate();
    //pst.execute();
    JOptionPane.showMessageDialog(null,"Updated");
    }catch (Exception e) {
        JOptionPane.showMessageDialog(null,e);            
        //e.printStackTrace();
    } finally {
        try {
            rs.close();
            pst.close();
        } catch(Exception e) {

        }
    }
   Update_Table();  
   FieldsCleaner();
}                                         
本文链接:https://www.f2er.com/3127689.html

大家都在问