0

由于 CardLayout 的大小固定,我无法在 Swing 中对齐网格面板。

我有一个 gridPanel gpTenderTypes,我使用了卡片布局。

 gpTenderTypes.setLayout(new CardLayout());

当一个按钮被点击时,卡片会改变并且类会被调用(例如,当信用卡按钮被点击时,网格面板中的信用卡会被显示出来,并且 Card1() 对象会被调用。

gpTenderTypes.add(new Cash1(), DBConstants.TENDER_TYPE_CASH);
gpTenderTypes.add(new Card1(), DBConstants.TENDER_TYPE_CREDIT_CARD);

gpTenderTypes 与其他 2 个网格面板一起添加到另一个 gridPanel gp2row 中。

gp2row.addFilledComponent(gpCustDet, 1, 1, 6, 1,GridBagConstraints.BOTH);
gp2row.addFilledComponent(gpTT, 1, 7, 1, 1, GridBagConstraints.BOTH);        
gp2row.addFilledComponent(gpButtonsPanel, 1, 8, 6, 1,GridBagConstraints.BOTH);

gp2row 被添加到屏幕中:

this.addFilledComponent(gp2row, 2, 1, 14, 1, GridBagConstraints.BOTH);

我已经意识到 CardLayout 的大小保持不变,无论使用 setSize 或 setPreferredSize 更改其大小。更改其他 GridPanel(gpCustDet、gpButtonsPanel)的尺寸也没有用。

我该如何解决这个问题?谢谢!

4

1 回答 1

0

的大小CardLayout(实际上是布局为 的组件的大小CardLayout)不是由您对该组件的子组件所做的任何事情定义的,而是由组件本身及其父组件及其父组件的布局管理器定义的。如果您的代码中没有更多细节,我们无法确定,但我会先看看那里。

于 2012-01-12T14:33:06.477 回答