是这样的:
你没有把布局管理设为GridBagLayout,然后就直接用了,因此会出现这种异常!
因此,可以在init()方法的最前面加一句:
this.getContentPane().setLayout(new GridBagLayout());另外,main()方法中加上下面的语句,以便于显示:
        gbc.setBounds(100,100,300,300);
        gbc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        gbc.show();

解决方案 »

  1.   

    关于 GridBagLayout一下两下说不清,给你段我的代码你研究一下吧//设置northPane,northPane是一个JPanel
    northPane.setLayout(new GridBagLayout());
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.weightx=0;
    gbc.weighty=0;
    gbc.fill = GridBagConstraints.NONE;gbc.insets = new Insets(0,10,0,0);
    gbc.gridwidth=6;//µÚ1ÐÐ
    gbc.gridheight=1;
    gbc.anchor = GridBagConstraints.NORTHWEST;
    northPane.add(gongju,gbc);gbc.gridwidth=4;//µÚ2ÐÐ
    gbc.gridx=0;
    northPane.add(groupName,gbc);
    gbc.gridwidth=2;
    gbc.gridx=4;
    northPane.add(changeGroupName,gbc);
    gbc.insets = new Insets(5,10,0,0);gbc.gridwidth=4; //µÚ3ÐÐ
    gbc.gridheight = 3;
    gbc.gridx=0;
    northPane.add(listScrollPane,gbc);
    gbc.gridwidth = 2;
    gbc.gridheight = 1;
    gbc.gridx = 4;
    northPane.add(addGongJu,gbc);
    gbc.gridwidth = 2;
    gbc.gridheight = 1;
    northPane.add(remove,gbc);
    gbc.gridwidth = 1;
    gbc.gridheight = 1;
    gbc.gridx = 4;
    northPane.add(upDone,gbc);
    gbc.gridwidth = 1;
    gbc.gridheight = 1;
    gbc.gridx = 5;
    northPane.add(downDone,gbc);gbc.insets = new Insets(5,10,0,0);
    gbc.gridwidth=1;//µÚ4ÐÐ
    gbc.gridx=0;
    northPane.add(menuText,gbc);
    gbc.gridwidth = 5;
    gbc.gridx=1;
    northPane.add(menuTextField,gbc);gbc.gridwidth=1;//µÚ5ÐÐ
    gbc.gridx=0;
    northPane.add(order,gbc);
    gbc.gridwidth = 5;
    gbc.gridx=1;
    northPane.add(orderField,gbc);gbc.gridwidth=1;//µÚ6ÐÐ
    gbc.gridx=0;
    northPane.add(canshu,gbc);
    gbc.gridwidth = 5;
    gbc.gridx=1;
    northPane.add(canshuField,gbc);gbc.gridwidth=1;//µÚ7ÐÐ
    gbc.gridx=0;
    northPane.add(beginDirector,gbc);
    gbc.gridwidth = 4;
    gbc.gridx=1;
    northPane.add(beginDirectorField,gbc);
    gbc.gridwidth = 1;
    gbc.gridx=5;
    northPane.add(selectDirector,gbc);
    自己弄出来理解的就会更透彻,祝愿你成功