我可以在jlabel中制作可调整大小的图标吗?

时间:2014-02-25 21:48:24

标签: java image swing jlabel imageicon

我是否可以使用任何属性或任何代码来使JLabel内的图标可调整大小。或者是否有任何其他可以存储图像的项目,我可以使用它来在JFrame内部显示可调整大小的图像?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

一般情况下,我建议您使用JLabel进行尝试,因为JLabel还有很多其他您不想搞砸的功能(对齐和文字)。

通常,更好的解决方案是使用专用的“图像”面板,您可以对其进行额外控制,以微调您希望缩放的工作方式。

example

如果您真的坚持使用JLabel,我建议在其中添加ComponentListener并在更改大小时调整基础图像的大小。这个问题是componentResized可能会连续快速调用,这意味着你需要设计某种合并算法,只对给定时间内的最后一个事件作出反应......

答案 2 :(得分:0)

查看Darryl的Stretch Icon,它会动态缩放图标以填充标签。