JFrame固定宽度

时间:2012-10-20 13:28:35

标签: java swing jframe

是否可以为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);
            }
        });
    }

}

最小设置正在运行,但最大值不是。

4 个答案:

答案 0 :(得分:16)

在代码中使用f.setPreferredSize(new Dimension(500, 500));。   绝对阅读这篇文章:Java: Difference between the setPreferredSize() and setSize() methods in components   并且为了防止您的框架增长或缩小,请使用f.setResizable(false);

答案 1 :(得分:2)

设置大小,然后输入:

JFrame.setResizable(false);

答案 2 :(得分:0)

只需将最大值设置为您要指定的值即可。 取决于......屏幕尺寸的最大值 或我们自己的值而不是Integer.MAX_VALUE

答案 3 :(得分:0)

你可以使用

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

希望它对您有用