JMenuItem ImageIcon太大了

One*_*mir 4 java swing

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

ImageIcon image = new ImageIcon(new ImageIcon("/home/template/img.jpg")
        .getImage().getScaledInstance(32, 32, Image.SCALE_DEFAULT));
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*rry 12

如果你不想在代码中缩放图像(我猜你在问题中的意思是什么?)为什么不只是让源图像的大小开始?最简单的解决方案有时是最好的!

此外,getScaledInstance()通常是个坏主意.解释了为什么并为调整图像大小提供了更好的选择.如果您在其他地方使用该图像,则值得阅读该文章并使用更好的技术(例如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);
Run Code Online (Sandbox Code Playgroud)

这样的东西应该给你图像,然后你可以使用创建你的ImageIcon ret.