日期:2014-05-20  浏览次数:20675 次

问一个简单的关于启动显示窗口的问题
public   class   Main
{
    boolean   packFrame   =   false;
    public   Main()
  {
    JFrame   frame   =   new   JFrame();
    frame.setSize(700,500);
    if   (packFrame)
          {
              frame.pack();
          }
    else
          {
              frame.validate();  
          }
      frame.setVisible(true);
}
请问这里为什么要设置packFrame,起到什么作用呢?

------解决方案--------------------
光看这段代码好像有问题 ‘开始既然设置了 boolean packFrame = false;为什么还要用if来判断,不是每次都是false吗? ’ 呵呵 我想packFrame是一个标志 标志着在创建窗口对象时是不是要pack此窗口 这个类应当会有两个方法 setPackFrame()和isPackFrame()来设置和获取这个标志 但是好像只有他们都是静态的太可以啦 在构建对象之前调用静态方法先设置这个标志 而这个标志也是静态的

pack():调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口和/或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该 Window。
validate():
使用 validate 方法会使容器再次布置其子组件。已经布置容器后,在修改此容器的子组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方法。