自定义JLabel图标

我想在我的GUI上使用java JLabel和自定义大小的Icon。像这样 : 我用这段代码来改变原始Icon的大小:
    ImageIcon imageIcon = (ImageIcon) jLabel1.getIcon();// new ImageIcon( "Play-Hot-icon.png");

    ImageIcon thumbnailIcon = new ImageIcon(getScaledImage(imageIcon.getImage(), 25 , 25));
    jLabel1.setIcon(thumbnailIcon);
这是调整大小图像的代码
private Image getScaledImage(Image srcImg, int w, int h){

    BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = resizedImg.createGraphics();

    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);

    g2.drawImage(srcImg, 0, 0, w, h, null);

    g2.dispose();
    return resizedImg;
}    
但在调整图像大小并使用此代码后,结果就是这个! : 我怎样才能在JLabel上获得所需的图像? 问候, 萨贾德     
已邀请:
问题在于,当您创建缩放图像时,使用
BufferedImage.TYPE_INT_RGB
作为新图像,透明度仅使用
TYPE_INT_RGB
呈现为黑色。 为了保持透明度,您需要将其替换为
BufferedImage.TYPE_INT_ARGB
,因为您需要一个alpha组件。 但是,在
imageIcon
的图像上调用Image.getScaledInstance将返回一个已经带有alpha分量的缩放图像,你可以传递它的渲染提示来播放缩放图像的质量,与你的
getScaledImage
函数基本相同,但是少了麻烦。     

要回复问题请先登录注册