Gridx和Gridy没有改变任何东西

时间:2016-05-04 00:16:39

标签: java user-interface constraints

我遇到一个错误,我的GridxConstraints中的gridx和gridy什么都不做。我有多个对象,我正在尝试添加和更改位置,但它们都没有改变,只是停留在我离开它们的位置,好像我从未使用过grix和gridy。

module 'sqlalchemy' has no attribute 'ext'

1 个答案:

答案 0 :(得分:0)

要有意义地使用gridygridwidth,您还需要使用gridheightGridBagLayout。在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。