在Swing中更改CardLayout的大小

时间:2011-12-30 07:15:19

标签: java swing cardlayout

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

我有一个gridPanel gpTenderTypes,我使用过Card Layout。

 gpTenderTypes.setLayout(new CardLayout());

单击按钮时,卡片将会更改,并且将调用班级(例如,单击信用卡按钮时,将显示网格面板中的信用卡,并且将调用Card1()对象。

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

gpTenderTypes与另外两个gridpanels一起添加到另一个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更改其大小。更改其他GridPanels(gpCustDet,gpButtonsPanel)的尺寸也没有用。

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

1 个答案:

答案 0 :(得分:0)

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