2016-12-15 6 views
-2

안녕하세요. 이미지에 문제가 있습니다. 레이블이있는 이미지의 크기를 조정하고 싶습니다. 파일 선택기를 사용합니다. 아래 코드는 다음과 같습니다.레이블의 너비에 맞게 이미지의 크기를 조정하는 중 오류가 발생했습니다. Java 8.0

try { 

       File file = jfc.getSelectedFile(); 
       java.net.URL url = file.toURL(); 

       BufferedImage imageBuf = null; 
       BufferedImage imageSize = null; 


       try { 
        imageBuf = ImageIO.read(url); 
        imageSize = (BufferedImage) imageBuf.getScaledInstance(jlbl_image.getWidth(), jlbl_image.getHeight(),Image.SCALE_SMOOTH); 

        ImageIcon img; 
        img = new ImageIcon(imageSize); 
        jlbl_image.setIcon(img); 

       } catch (IOException ex) { 
        Logger.getLogger(JFRecordSection.class.getName()).log(Level.SEVERE, null, ex); 
       } 

다음은 fileChooser에서 이미지를로드 할 때의 오류 코드입니다. 이미지가 하지 BufferedImage를하고, 그래서 하나로 취급해서는 안 : 오류 메시지가 당신을 말하고있다

sun.awt.image.ToolkitImage cannot be cast to java.awt.image.BufferedImage 

답변

0

문제가 정확히 무엇인지. 그러나 귀하의 가정은 부정확합니다. JFileChooser에서로드 된 이미지가 BufferedImage가 아니라 크기 조정 이미지가 .getScaledInstance(...)에서 반환 된 이미지가 아닙니다. 따라서 인터페이스 유형을 Image으로 변경하면 사용할 수 있습니다.

+0

... 아니면 그냥'imageSize'의 형식을'Image'로 변경하십시오. 전혀 캐스팅하지 마십시오. 모두가이기는 것입니다. ;-) – haraldK