通俗来讲:
f.pack()做了这样一件事:f.setSize(f.getPreferredSize());
在你没加f.pack()之前,f窗体的大小是(0,0)
当你加了以后,f的大小会被设置为最佳大小,也就是prefrredSize
比较正式的解释:
Frame.pack()这个方法的作用就是根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小。
Frame.pack()与frame.validate()方法的区别:
frame.validate()是验证frame中的所有组件,并不会调整frame的大小.
frame.validate()应用动态添加或者删除某些控件后,为了实时展现操作后的结果,就必须用validate,invalidate和repaint这三个函数。当前使用不当,会导致容器从新布局时出现闪烁