java swing resize ImageIcon zgodnie z jLabel
Jestem tutaj nowym programistą i muszę coś zapytać, przeglądam zdjęcie w moim interfejsie GUI (i ustawiam również ścieżkę w polu tekstowym), które wyświetla się na etykiecie, ale wymiar etykiety jest ustawiony tylko na 100,100, podczas gdy obraz jest dużo większy, więc kiedy otwieram / wyświetlaję go na etykiecie, która jest przycinana, czy mimo to ma być ona automatycznie zmieniana do rozmiaru etykiety? poniżej jest mój kod logiczny na przycisku przeglądania i otwórz okno dialogowe, proszę, powiedz mi, gdzie się mylę ..
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");
}
}
}