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