这是关键代码:
  public GridBagConstraints setGridBagC(int gx,int gy,double wx,double wy,int gFill,int gAnchor){
        GridBagConstraints c = new GridBagConstraints();
        c.fill=gFill;
        c.anchor=gAnchor;
        c.gridx=gx;
        c.gridy=gy; 
        c.weightx=wx;
        c.weighty=wy;
        return c;
}
public int initFrame(Container pane){
        setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);//Set the size of the frame.
        setResizable(false);//You're not allowed to resize the frame.   
        pane.setLayout(new GridBagLayout());    
        GridBagConstraints c;       c=setGridBagC(0,0,0,0,GridBagConstraints.HORIZONTAL,GridBagConstraints.NORTH);
        JMenu ArchJ=new JMenu("Console");
        JMenu menuTwo=new JMenu("MenuTwo");
        JMenu menuThree=new JMenu("MenuThree");
        JMenu menuFour=new JMenu("MenuFour");
        JMenuBar mbar=new JMenuBar();
        mbar.add(ArchJ);
        JMenuItem OneItOne=new JMenuItem("1");
        OneItOne.setPreferredSize(new Dimension(100,30));
        JMenuItem OneItTwo=new JMenuItem("2");
        OneItTwo.setSize(100, 30);
        ArchJ.add(OneItOne);
        ArchJ.addSeparator();
        ArchJ.add(OneItTwo);
        mbar.add(menuTwo);
        mbar.add(menuThree);
        mbar.add(menuFour);
        pane.add(mbar,c);
        JButton bt=new JButton("kd");
        c=setGridBagC(0,1,1.0,0,GridBagConstraints.BOTH,GridBagConstraints.NORTH);
        pane.add(bt,c);     
        //pack();//Do not use pack()
        return 1;
    }
这就是frame:
RobotCtrlFrame frame=new RobotCtrlFrame();
frame.initFrame(frame.getContentPane());
结果如下:

我不打算在pack()这里使用该功能。顶部和底部的空间让我很困惑。我怎样才能消除这些空间?谢谢。虽然使用pack();可以包装空间。我想弄清楚这些剩余空间的原因。