Resize a picture to fit a JLabel

后端 未结 8 560
不思量自难忘°
不思量自难忘° 2020-11-29 01:56

I\'m trying to make a picture fit a JLabel. I wish to reduce the picture dimensions to something more appropriate for my Swing JPanel.

I tried with setPreferredSiz

8条回答
  •  爱一瞬间的悲伤
    2020-11-29 02:28

    public void selectImageAndResize(){    
        int returnVal = jFileChooser.showOpenDialog(this); //open jfilechooser
        if (returnVal == jFileChooser.APPROVE_OPTION) {    //select image
            File file = jFileChooser.getSelectedFile();    //get the image
            BufferedImage bi;
            try {
                //
                //transforms selected file to buffer
                //
                bi=ImageIO.read(file);  
                ImageIcon iconimage = new ImageIcon(bi);
    
                //
                //get image dimensions
                //
                BufferedImage bi2 = new BufferedImage(iconimage.getIconWidth(), iconimage.getIconHeight(), BufferedImage.TYPE_INT_ARGB); 
                Graphics g = bi.createGraphics();
                iconimage.paintIcon(null, g, 0,0);
                g.dispose();
    
                //
                //resize image according to jlabel
                //
                BufferedImage resizedimage=resize(bi,jLabel2.getWidth(), jLabel2.getHeight()); 
                ImageIcon resizedicon=new ImageIcon(resizedimage);
                jLabel2.setIcon(resizedicon);
            } catch (Exception ex) {
                System.out.println("problem accessing file"+file.getAbsolutePath());
            }
        }
        else {
            System.out.println("File access cancelled by user.");
        }
    }
    

提交回复
热议问题