新手请教.
我给gridx,gridy,gridwidth,gridheight,ipadx和ipady都赋了值,可是组件全都聚在窗口的中央,求助!以前也用过这个布局管理器,可是没有这种现象,这次的使用方法和以前近似,请问可能时什么原因导致的.谢了先

解决方案 »

  1.   

    补充代码如下: 
    rightPane.setLayout(new GridBagLayout()); 
    GridBagConstraints g = new GridBagConstraints(); 
    rightPane.add(nameLabel,setNewLayout(g,0,0,1,1)); 
    rightPane.add(nameField,setNewLayout(g,1,0,6,1)); 
    rightPane.add(dateLabel,setNewLayout(g,2,0,1,1)); 
    rightPane.add(dateField,setNewLayout(g,3,0,2,1)); 
    rightPane.add(diaryPane,setNewLayout(g,0,1,8,10)); 
    rightPane.add(submit,setNewLayout(g,0,2,4,1)); 
    因为嫌GridBagConstraints的构造函数太麻烦就自己写了个构造GridBagConstraints的函数: 
    public GridBagConstraints setNewLayout(GridBagConstraints c,int x,int y,int w,int h) 

    c.gridx = x; 
    c.gridy = y; 
    c.gridwidth = w; 
    c.gridheight = h; 
    c.insets = new Insets(2,4,2,4); 
    c.ipadx = 30; 
    c.ipady = 1; 
    return(c); 

      

  2.   

    GridBagLayout是布局最灵活,也是最好用的一个布局管理器你可以在Eclipse下安装一个VE插件..你的控件都在中间,是因为你没有设置权重这个属性
      

  3.   

    GridBagLayout是布局最灵活,也是最好用的一个布局管理器你可以在Eclipse下安装一个VE插件..你的控件都在中间,是因为你没有设置权重这个属性
    ———————————————————————————
    LZ别急,慢慢来
      

  4.   

    还有个问题:weightx,weighty不是对分配长和宽后剩余的部分进行比例的分配的吗?那为什么我不设置这个值就会使组件全聚集在中央?如果设置了权重的话是不是会和gridwidth和gridheight所赋的值的比例产生冲突?(说得有些便扭,不知大家看明白了没.....)