比如我程序是这么写的,每次启动程序后 JFRAME窗口什么都不显示,只有最大化最小化或者手动调整JFrame大小才能显示出里面的内容。 
请问这是怎么回事啊?有人说使用frame.validate()但还是不行
frame.pack();到是可以有什么区别?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【caowy112】截止到2008-06-28 02:07:58的历史汇总数据(不包括此帖):
    发帖数:17                 发帖分:400                
    结贴数:2                  结贴分:40                 
    未结数:15                 未结分:360                
    结贴率:11.76 %            结分率:10.00 %            
      

  2.   

    你的JFrame是不是显示出来就一点点大?
    你可以使用frame.setSize(int width, int height)来手动设置大小
    或者使用pack();
    pack()这个方法的作用就是根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小,
    如果在窗体中没使用布局管理器,就必须使用setSize()方法.
    frame.validate()方法是验证frame中的所有组件,并不会调整frame的大小,所以像你说的那样没有效果
      

  3.   

    frame.validate()方法是验证frame中的所有组件
    API中是这么说,可是我不大明白它的作用~
      

  4.   

    这个设置了没
    setVisible(true)?
      

  5.   

    你说的这个问题我道是遇到过几次,不过我怎么用validate()就好了,还没用过pack()
      

  6.   

    要用revalidate(),但revalidate()是Jcomponent的方法,可以frame.getContentPane().revalidate();
      

  7.   

    frame.pack()是自动调整组件大小..以适应整体布局~!
      

  8.   

    我比较清楚pack();的作用
    但是对validate();只有空泛的解释,说是重新对组建进行布置
    但是我不明白它的意义所在~
      

  9.   

    我也刚好遇到这样的问题,原来还有这样的方法的,加个frame.validate()可以解决
      

  10.   

    pack()//是自动适应大小
    vailate()//是重新调整大小,前提是已经设置大小,且大小发生变化。如最大最小化窗口
      

  11.   

    pack()这个方法的作用就是根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小, 
    如果在窗体中没使用布局管理器,就必须使用setSize()方法或者setbounds()方法. 
    setSize(int width, int height);设置宽和高
    setbounds(int x,int y,int width, int height);设置坐标及宽和高