Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Swing中自动调整窗口大小_Java_Image_Swing_Jframe - Fatal编程技术网

Java 如何在Swing中自动调整窗口大小

Java 如何在Swing中自动调整窗口大小,java,image,swing,jframe,Java,Image,Swing,Jframe,我需要在JFrame中显示一个图像。如何根据图像大小自动调整窗口大小。1.如果将图像作为图标/ImageIcon放置到标签中,则 必须测试混凝土监视器返回的JFrame的MaximumSize 如果PreferedSize小于MaximumSizesize,则调用JFrame#pack() 否则必须调用setSize() 2.如果您使用自定义绘制将图像作为图标/ImageIcon放置到JComponent,JPanel,JLabele.i 那么这个JComponent必须返回Preferr

我需要在JFrame中显示一个图像。如何根据图像大小自动调整窗口大小。

1.如果将图像作为
图标/ImageIcon
放置到
标签中,则

  • 必须测试混凝土监视器返回的
    JFrame
    MaximumSize

  • 如果
    PreferedSize
    小于
    MaximumSize
    size,则调用
    JFrame#pack()

  • 否则必须调用
    setSize()

2.如果您使用
自定义绘制将图像作为
图标/ImageIcon
放置到
JComponent
JPanel
JLabel
e.i

  • 那么这个
    JComponen
    t必须返回
    PreferredSize

    a) 如果
    PreferedSize
    小于
    MaximumSize
    ,则调用
    JFrame#pack()

    b) 否则必须调用
    JFrame#setSize()

    c) 假设您不使用
    Image#getScalledInstance


< > > 3。我将使用<代码>图标>代码>在Jabel>/代码>中,只有一个问题,即屏幕上的图像可以小于预期大小,但没有问题,很有可能将图像定置到<代码> jLabel.Center < /Cord> > <代码> jabel> /Calp>

也考虑<代码> JScR卷屏< /C>如图所示。第2点使用自定义绘制的示例如图所示。我不太理解整体逻辑:a)通常,max太大(因此在一次近似中可以安全地忽略),且waayy大于pref b)JLabel返回pref的合理大小,pack是所有需要的c)否则将是pref>max,这将是一个非法状态,必须进行固定(而不是强制将实际大小变大(不确定框架是否需要)1.和2.看起来非常相似(除了手动绘制和自定义覆盖getPref)