Swing-setMaximumSize()用法-入门

与setMinimumSize()一同讨论。顾名思义,这两个函数用于设置窗体的最大、最小值。然而测试发现,setMaximumSize()直接作用于JFrame时,无法实现其预定功能,setMinimumSize()功能正常。

测试代码如下:

import java.awt.Dimension;
import javax.swing.JFrame;

/*
 * 2015-06-17
 */
public class SetMaximumSizeDemo extends JFrame {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SetMaximumSizeDemo setMaximumSizeDemo = new SetMaximumSizeDemo();
        setMaximumSizeDemo.setMaximumSize(new Dimension(300, 300));
        setMaximumSizeDemo.setMinimumSize(new Dimension(100, 100));
        setMaximumSizeDemo.setBounds(100, 100, 200, 100);
        setMaximumSizeDemo.setVisible(true);
    }
}

运行效果图如下:

图1 默认尺寸200x100

图2 最小尺寸100x100

图3 放大尺寸,超过300x300

google发现,setMaximumSize()确实是bug,参见:JDK-6464548 : Reopen 6383434: Frame.setMaximumSize() doesn't work

当然,也有人认为这两个函数都不可靠Java swing setMaximumSize not working

因此,笔者认为,如果确实想要对窗体或控件的最大、最小进行控制,需要在窗体的事件响应中来实现。

原文地址:https://www.cnblogs.com/pzy4447/p/4584460.html