使用JFileChooser将文件插入Jlabel

时间:2019-06-16 17:39:12

标签: java swing jfilechooser

我正在尝试使用JFileChooser来获取文件(图像)以适合Jlabel。但是当我插入文件时,它会放大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 :(得分:0)

尝试此代码,可能会对您有所帮助。

将图片读取为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 X150。否则,图片会失真。

ImageIcon imageIcon = new ImageIcon(dimg)