8

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

4 回答 4

20

f.setPreferredSize(new Dimension(500, 500));在您的代码中使用 。并且一定要阅读这篇文章:Java:组件中的 setPreferredSize() 和 setSize() 方法之间的区别以及 防止框架增长或缩小使用f.setResizable(false);

于 2012-10-20T13:29:24.280 回答
2

设置大小然后写:

JFrame.setResizable(false);
于 2018-07-10T11:17:58.673 回答
0

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

于 2014-10-24T03:38:17.357 回答
0

您可以使用

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

希望它对你有用

于 2017-09-02T17:07:29.323 回答