2011-08-02 77 views
4

我遇到了問題。我的圖像太大,所以它放大了相應的JMenuItem。我不想開發像自行車JMenuItem ImageIcon太大

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

是否有任何其他方式來實現呢?

回答

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。