2014-02-25 53 views
0

是否有任何財產或任何代碼可以實現在JLabel內調整圖標的大小。或者是否有任何其他物品可以存儲圖像,我可以使用JFrame內的可調整大小的圖像?我可以調整jlabel裏面的圖標大小嗎?

+0

你的意思是可調整大小?如果你調整你的jlabel,那麼圖標可能會調整大小 – nachokk

+0

我使用的是NetBeans,當我嘗試調整jlabel的大小時,我只能保持固定,而jlabel正在調整大小(切割部分圖片)。 – user2388072

+0

簡短的回答:你將不得不自己製作一些東西,或者找一個爲你做的東西。看看這裏:http://stackoverflow.com/questions/14548808/scale-the-imageicon-automatically-to-label-size – sorifiend

回答

0

使用此代碼:

photo = new ImageIcon(UrlofPhoto); 
Image im = photo.getImage(); 
Image Newim = im.getScaledInstance(yourlabel.getWidth(), yourlabel.getHeight(),Image.SCALE_SMOOTH); 
ImageIcon Newphoto=new ImageIcon(Newim); 
yourlabel.setIcon(Newphoto); 

不要忘記設置一個初始化的大小yourlabel

+0

看看[Image.getScaledInstance()的危害](http:// today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html),爲什麼這並不總是一個好主意...... – MadProgrammer

0

一般來說,我我就不會建議用JLabel作爲JLabel有很多其他功能嘗試這種你真的不想搞亂(對齊和文本)。

通常,更好的解決方案是使用專用的「圖像」面板,您可以提供額外的控制來微調您希望縮放的工作方式。

對於example

如果你真的堅持使用JLabel的時候,我會建議附加一個ComponentListener它和調整底層圖像當過它改變大小。這樣做的問題是componentResized可能會反覆快速連續被調用,這意味着你將需要制定某種合併的算法,只有反應給定的時間週期中的最後事件的...

相關問題