第2个是我做的,但是怎么我的  是否注册  就占了这么大一块地方
能不能缩下来一点,做成第一个图的效果

解决方案 »

  1.   

    GridBagConstraints的weightx属性设置了没?
    这个属性决定了组件之间的宽度的比例
    比如都设成这样:
    c.weightx = 1.0;
    那3个组件的宽度比例将是1:1:1
      

  2.   

    看样子楼主这行应该有
    一个 Checkbox
    两个 Label
    两个 TextField那就第一个Checkbox的 c.weightx = 2.0;
    后面四个组件的 c.weightx = 1.0;
      

  3.   


    没效果啊我刚刚想到一个方法,就是每一行的几 个组件都放到一个panel里,然后在外面再设置panel1,2,3,4的位置,但我刚刚写了出来就发现gridbaglayout好像对panel不起作用,就是本来paenl2应该在panel1下面的,就算我怎么改c.gridx  c.gridy的值,panel2还是跟在panel1屁股后面  
      

  4.   

    如果按你说的做了两个panel那你c.gridx都设0
    再设c.fill = GridBagConstraints.HORIZONTAL; //横向填充满
    c.gridy先不要设
    再不行再试试c.ipadx = 10000;//组件最小宽度,反正设大点再说
      

  5.   

    楼主 还有一个要注意的
    比如你panel1和panel2的内部也是用GridBagLayout布局的
    那你先对panel1布局完然后重新
    GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints c = new GridBagConstraints();
    panel2.setLayout(gridbag);
    再给panel2布局然后再重新
    GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints c = new GridBagConstraints();
    pnlMain.setLayout(gridbag);
    用这个来对panel1和panel2之间布局,
      

  6.   


    我已经找到方法了,原来是我在add(panel1)的时候少了个参数,要add(panel1,c)这样才行你知道下面那个个表格一样的组件是什么吗,就是在注册,保存上面那个
      

  7.   

    Swing的话简单 用JTabel就成了
    如果不给用Swing……
    对纯awt的组件我还真不熟不过倒有个笨办法
    弄6×3=18个TextField
    然后把它们用GridLayout(3,6)布局
    就可以有这种效果了
      

  8.   


    不好意思,JTable又有问题了........
    问题是API好像没有add那种方法啊,怎么加内容进去
      

  9.   

    先new一个DefaultTableModel
    DefaultTableModel model = new DefaultTableModel();
    然后用这个来生成一个JTabel
    JTabel table = new JTabel(model);
    然后对model可以用
    addColumn 增加数据的列
    addRow 增加数据的行
      

  10.   


    还有,我都是用awt写的,DefauktTable好像不能兼容,说找不到符号,我已经导入swing包的
      

  11.   

    继续打错,是DefaultTableModel
      

  12.   

    javax.swing.table.DefaultTableModel
      

  13.   

    不要再这个费劲了,有一个开源的布局管理器 designGridLayout  ,还是方便。 我之前也跟你一样,为布局一点一点调,调的我头都在了,但用了 designGridLayout  后,轻松多了,他提供了一些很实用的功能。
      

  14.   


    是作业来的,一定要用gridbaglayout其实我就觉得这些实在是没什么好研究的,要不是为了考了那个JAVA二级,用的还是NetBeans2007.....可见有多落后