楼主 还有一个要注意的 比如你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之间布局,
这个属性决定了组件之间的宽度的比例
比如都设成这样:
c.weightx = 1.0;
那3个组件的宽度比例将是1:1:1
一个 Checkbox
两个 Label
两个 TextField那就第一个Checkbox的 c.weightx = 2.0;
后面四个组件的 c.weightx = 1.0;
没效果啊我刚刚想到一个方法,就是每一行的几 个组件都放到一个panel里,然后在外面再设置panel1,2,3,4的位置,但我刚刚写了出来就发现gridbaglayout好像对panel不起作用,就是本来paenl2应该在panel1下面的,就算我怎么改c.gridx c.gridy的值,panel2还是跟在panel1屁股后面
再设c.fill = GridBagConstraints.HORIZONTAL; //横向填充满
c.gridy先不要设
再不行再试试c.ipadx = 10000;//组件最小宽度,反正设大点再说
比如你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之间布局,
我已经找到方法了,原来是我在add(panel1)的时候少了个参数,要add(panel1,c)这样才行你知道下面那个个表格一样的组件是什么吗,就是在注册,保存上面那个
如果不给用Swing……
对纯awt的组件我还真不熟不过倒有个笨办法
弄6×3=18个TextField
然后把它们用GridLayout(3,6)布局
就可以有这种效果了
不好意思,JTable又有问题了........
问题是API好像没有add那种方法啊,怎么加内容进去
DefaultTableModel model = new DefaultTableModel();
然后用这个来生成一个JTabel
JTabel table = new JTabel(model);
然后对model可以用
addColumn 增加数据的列
addRow 增加数据的行
还有,我都是用awt写的,DefauktTable好像不能兼容,说找不到符号,我已经导入swing包的
是作业来的,一定要用gridbaglayout其实我就觉得这些实在是没什么好研究的,要不是为了考了那个JAVA二级,用的还是NetBeans2007.....可见有多落后