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