我可以调整 jlabel 内的图标的大小吗?



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

使用以下代码:

 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);

不要忘记为您的标签设置初始化大小

一般来说,我不建议用JLabel尝试这个,JLabel因为它有很多你真的不想弄乱的其他功能(对齐和文本)。

通常,更好的解决方案是使用专用的"图像"面板,您可以提供额外的控制来微调您希望缩放的工作方式。

例如

如果您真的坚持使用 JLabel ,我建议您在其上附加一个ComponentListener,并在更改大小时调整底层图像的大小。 这样做的问题是componentResized可能会快速连续地重复调用,这意味着您需要设计某种合并算法,该算法仅在给定时间段内对最后一个事件做出反应......

查看达里尔的拉伸图标,它将动态缩放图标以填充标签。

最新更新