我遇到一个错误,我的GridxConstraints中的gridx和gridy什么都不做。我有多个对象,我正在尝试添加和更改位置,但它们都没有改变,只是停留在我离开它们的位置,好像我从未使用过grix和gridy。
module 'sqlalchemy' has no attribute 'ext'
答案 0 :(得分:0)
要有意义地使用gridy
和gridwidth
,您还需要使用gridheight
和GridBagLayout
。在b1 = new JButton("Button!");
b1.setVisible(true);
b2 = new JButton("Button 2!");
b2.setVisible(true);
r1.setVisible(true);
r.setVisible(true);
//setting grid numbers
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 5;
c.gridheight = 2;
//adding to frame
p.add(b2,c);
c = new GridBagConstraints();
//setting grid numbers
c.gridx = 5;
c.gridy = 2;
p.add(r1,c);
....
中,网格的单元格(以及因此的行和列)没有固定的大小,但查询其内容的首选大小,然后根据权重确定额外的空间(另一个约束)参数 - 有关详细信息,请始终查看fine documentation。
此外,虽然可以在多个对象上重用GridBagConstraints,但在重用之前修改它而不重置所有字段(有些默认为零)会很困惑。最简单的方法是为下一个子组件创建另一个约束对象(如果它们不同)。
所以:
GridBagLayout
等等。
GridLayout
的布局非常复杂,从你的例子来看,你可能想要一些完全不同的东西:如果你期望一个固定大小的网格,并希望网格中有空格“跳过” “行和列,使用{{1}},而不是GridBagLayout。