Java Swing Resize ImageIcon nach jLabel

Ich bin ein neuer Programmierer hier und ich habe etwas zu fragen. Ich habe ein Bild in meiner GUI durchsucht (und den Pfad auch in einem Textfeld festgelegt), das auf einem Etikett angezeigt wird, aber die Etikettendimension ist nur auf 100.100 festgelegt, während das Bild sehr groß ist Wenn ich es öffne / in das Etikett einblende, wird es beschnitten. Gibt es eine Möglichkeit, die Größe des Etiketts automatisch anzupassen? Unten ist mein Logikcode auf der Schaltfläche "Durchsuchen" und "Dialogfeld öffnen". Bitte sagen Sie mir, wo ich falsch liege.

public class ImagePath extends javax.swing.JFrame {
    private JPanel contentPane;

    JLabel jLabel1;
    String s2;
    File targetFile;
    BufferedImage targetImg;

    public ImagePath() {
        initComponents();
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

        JFileChooser jFileChooser1 = new JFileChooser();

        int state = jFileChooser1.showOpenDialog(new JFrame());

        jTextField1.setText("");
        if (state == JFileChooser.APPROVE_OPTION) {
            JOptionPane.showMessageDialog(new JFrame(), "hii");
            File file = jFileChooser1.getSelectedFile();
            s2 = file.toString();
            jTextField1.setText(s2);
            jLabel1 = new JLabel();
            jLabel1.setName(s2);
            jLabel1.setLocation(50, 50);
            jLabel1.setSize(300, 300);
            add(jLabel1);
            BufferedImage bi1;

            try {
                bi1 = ImageIO.read(file);
                ImageIcon icon1 = new ImageIcon(bi1);
                jLabel1.setIcon(icon1);

                Image img = icon1.getImage();
                ImageIcon icon = new ImageIcon(file.getPath());
                Image scaleImage = icon.getImage().getScaledInstance(28, 28, Image.SCALE_DEFAULT);

                repaint();
                pack();

            } catch (Exception e) {
                System.out.println(e);
            }
        } else if (state == JFileChooser.CANCEL_OPTION) {
            JOptionPane.showMessageDialog(new JFrame(), "Canceled");
        }

    }

}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage