我是否可以实现任何属性或任何代码来使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
可能会快速连续地重复调用,这意味着您需要设计某种合并算法,该算法仅在给定时间段内对最后一个事件做出反应......
查看达里尔的拉伸图标,它将动态缩放图标以填充标签。