JFrame固定宽度

9

是否可以为JFrame设置固定宽度?至少下面的代码无效:

import java.awt.Dimension;
import java.awt.EventQueue;

import javax.swing.JFrame;

public final class Main  {

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame f = new JFrame();
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setSize(500, 500);
                f.setMinimumSize(new Dimension(500, 0));
                f.setMaximumSize(new Dimension(500, Integer.MAX_VALUE));
                f.setVisible(true);
            }
        });
    }

}

最小设置可以工作,但最大设置不行。


对于在API中实现的BorderLayout,无法设置MaximumSize。 - mKorbel
3
为什么?另请参阅这个关于可用性的警示示例。 - trashgod
9
你可以使用f.setResizable(false); - Reimeus
4个回答

20

2

设置大小,然后写入:

JFrame.setResizable(false);

0

只需将最大值设置为您想要指定的值即可。 根据屏幕大小设置最大值 或者使用我们自己的值而不是 Integer.MAX_VALUE。


0
你可以使用

标签


Rectangle rc = f.getBounds();
rc.width = 500; //set max width
rc.height = Integer.MAX_VALUE; // set max height
f.setMaximizedBounds(rc);

希望它能在你身上起作用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接