Вставка файла в Jlabel с JFileChooser - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь получить файл (изображение), чтобы уместиться в Jlabel с JFileChooser.Но он увеличивает Jlabel, когда я вставляю файл.
Это пример моих кодов ...

JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
String filename = f.getAbsolutePath();
btnInsert.setText(filename);
ImageIcon icon = new ImageIcon(filename);
lblPic.setIcon(icon);

1 Ответ

0 голосов
/ 21 июня 2019

Попробуйте этот код, он может быть вам полезен.

Считайте изображение как BufferedImage

 BufferedImage img = null;
 JFileChooser chooser = new JFileChooser();
 chooser.showOpenDialog(null);
 File file = chooser.getSelectedFile();
 try {
     img = ImageIO.read(file );
 } catch (IOException e) {
     e.printStackTrace();
 }

Измените размер BufferedImage

Image dimg = img.getScaledInstance(label.getWidth(), label.getHeight(), Image.SCALE_SMOOTH);

Убедитесь, чтоширина и высота надписи равны ширине и высоте исходного изображения.Другими словами, если изображение имеет размер 600 x 900 пикселей, масштабируется до 100 X 150. В противном случае изображение будет искажено.

ImageIcon imageIcon = new ImageIcon(dimg)
...