2014-02-25 42 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可能会反复快速连续被调用,这意味着你将需要制定某种合并的算法,只有反应给定的时间周期中的最后事件的...

相关问题