我对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);
}
所以,如果它显而易见,我很遗憾,我很想知道它是什么。如果它不 - 那么显而易见,那么......我仍然想知道它是什么哈哈。
答案 0 :(得分:0)
您可以使用Stretch Icon。
图像将自动调整大小以填充标签。您可以控制图像是按比例缩放还是完全填充该区域。
使用StretchIcon
比在其他链接中建议的自定义绘画更灵活,因为您可以从支持Icon的任何组件上自动调整大小。
答案 1 :(得分:0)
“我不能这样做,因为我已经用其他东西扩展了我的代码。”
你没有“用”扩展代码“......你从特定类扩展JPanel。因此,完全可以使一个类扩展JPanel,另一个类继续扩展您已扩展的内容。
或者,实际上可能没有必要使用继承来满足您的其他需求。
此外,您发布的代码不是风格上正确的Java,并且没有任何继承,这表明您误解了某些内容。