JMenuItem ImageIcon太大了

时间:2011-08-02 18:20:59

标签: java swing

我遇到了一个问题。我的图像太大,所以它扩大了相应的JMenuItem。我不想开发像

这样的自行车
ImageIcon image = new ImageIcon(new ImageIcon("/home/template/img.jpg")
        .getImage().getScaledInstance(32, 32, Image.SCALE_DEFAULT));

还有其他方法可以实现吗?

1 个答案:

答案 0 :(得分:13)

如果您不想在代码中缩放图像(我认为这就是您在问题中的含义?)为什么不只是将源图像放大?最简单的解决方案有时是最好的!

此外,getScaledInstance()通常是一个坏主意。 This解释了原因,并为调整图像大小提供了更好的选择。如果您在其他地方使用该图像,则值得阅读该文章并使用更好的技术(例如graphics.drawImage())进行缩放,但如果您只是在菜单中使用它,则可能需要调整源图像的大小最好的事情。

如果您要调整大小:

BufferedImage image = ImageIO.read("img.jpg");
BufferedImage ret = new BufferedImage(32,32,BufferedImage.TYPE_RGB);
ret.getGraphics().drawImage(image,0,0,32,32,null);

这样的东西可以为您提供图像,然后您可以使用ret创建ImageIcon。