如何让JLabel在JFrame中动态调整大小?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让JLabel在JFrame中动态调整大小?相关的知识,希望对你有一定的参考价值。
我对Java比较陌生,所以我甚至不确定这是否可行,但我需要以某种方式让我的JLabel动态调整我的JFrame。它可能就像我缺少的一行代码一样简单,但坦率地说,我没有为自己解决这个问题所需的经验。
我尝试谷歌搜索和浏览其他Stack帖子,但他们要么通常无益或试图让我做类似的事情
class ImagePanel extends JPanel
或类似的东西 - >我不能做,因为我已经用其他东西扩展我的代码。
希望我也能正确地表达我的问题......
为了清楚起见,我需要我的图像在我调整框架大小时自动调整大小。
我的代码如下:
public static void ScalingImage() throws IOException
{
MyCollage GP = new MyCollage();
BufferedImage image = ImageIO.read(new File("myCollage_Final.jpg"));
JLabel label = new JLabel(new ImageIcon(image));
JFrame aFrame = new JFrame();
int picwidth = (int)Math.round(aFrame.getWidth());
int picheight = (int)Math.round(aFrame.getHeight());
aFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
aFrame.getContentPane().add(label);
aFrame.pack();
aFrame.setSize(2000, 2000);
aFrame.add(GP);
aFrame.setLocation(0, 0);
aFrame.setVisible(true);
}
所以,如果这是我想念的东西,我很想知道它是什么。如果它不是那么明显,那么...我仍然想知道它是什么哈哈。
答案
你可以使用Stretch Icon。
图像将自动调整大小以填充标签。您可以控制图像是按比例缩放还是完全填充区域。
使用StretchIcon
比在其他链接中建议的自定义绘画更灵活,因为您可以从支持Icon的任何组件的自动调整大小中受益。
另一答案
“我不能这样做,因为我已经用其他东西扩展了我的代码。”
你没有“扩展代码”......你从特定的类扩展JPanel。所以完全有可能有一个扩展JPanel的类,另一个类继续扩展你已经扩展的类。
或者,实际上可能没有必要使用继承来满足您的其他需求。
此外,您发布的代码不是风格上正确的Java,也没有任何继承,这表明您误解了某些内容。
以上是关于如何让JLabel在JFrame中动态调整大小?的主要内容,如果未能解决你的问题,请参考以下文章