Java 如何让JLabel在JFrame中动态调整大小?

Java 如何让JLabel在JFrame中动态调整大小?,java,swing,jframe,jlabel,Java,Swing,Jframe,Jlabel,我对Java比较陌生,所以我甚至不确定这是否可行,但我需要设法让我的JLabel用我的JFrame动态调整大小。它可能像我丢失的一行代码一样简单,但坦率地说,我没有为自己解决这个问题所需的经验 我试着在谷歌上搜索和浏览其他的堆栈帖子,但它们要么基本上没有帮助,要么试图让我做类似的事情 class ImagePanel extends JPanel 或者类似于-->的东西,我不能这样做,因为我已经在用其他东西扩展我的代码 希望我的问题措辞也正确 以防万一,澄清一下,我需要我的图像自动调整大小,

我对Java比较陌生,所以我甚至不确定这是否可行,但我需要设法让我的JLabel用我的JFrame动态调整大小。它可能像我丢失的一行代码一样简单,但坦率地说,我没有为自己解决这个问题所需的经验

我试着在谷歌上搜索和浏览其他的堆栈帖子,但它们要么基本上没有帮助,要么试图让我做类似的事情

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);
    }
所以,如果我错过了什么,我很想知道它是什么。如果不是很明显,那么。。。我还是很想知道它是什么,哈哈。

你可以用这个

图像将自动调整大小以填充标签。您可以控制图像是按比例缩放还是完全填充该区域

使用
StretchIcon
比按照其他链接中的建议进行自定义绘制更灵活,因为您可以从支持图标的任何组件上的自动调整大小中获益。

“这是我无法做到的,因为我已经用其他东西扩展了我的代码。”

你不能用“…”来“扩展代码”。。。您可以从特定类扩展JPanel。因此,完全有可能有一个类扩展JPanel,另一个类继续扩展您已经扩展的内容

或者,实际上可能没有必要使用继承来满足您的其他需求

另外,您发布的代码在风格上不符合Java,也没有表现出任何继承性,这向我表明您误解了某些东西。

我的第一个想法是,但后来我猜您确实想要调整图标的大小,而
JLabel
没有这样做。你可以看看这个,它对一个
JButton
做了同样的事情,或者你可以看看它演示了一个可调整大小的组件,它在组件调整大小时缩放它的相关图像