2016-12-15 38 views
-2

嗨,伙计们我在图像中遇到了问题,我只想调整图像的大小,使其与我的标签重新匹配。通过使用filechooser。这是下面的代码。调整图像尺寸时出现错误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加载图像时的错误代码。

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

回答

0

该错误消息告诉你到底是什么问题:你的形象是不一个BufferedImage,所以它不应该被视为一个。然而,你的假设是不正确的。这不是从JFileChooser加载的图像不是BufferedImage,而是从.getScaledInstance(...)返回的图像,而不是从图像返回的图像。所以改为将其转换为接口类型Image,您应该可以使用它。

+0

......或者说,只需将'imageSize'的类型改为'Image',根本不需要投射,每个人都会赢。 ;-) – haraldK