由于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)的尺寸也没有用。
我该如何解决这个问题? 谢谢!
答案 0 :(得分:0)
CardLayout
的大小(实际上是布局为CardLayout
的Component的大小)不是由您对该组件的子项所做的任何事情定义的,而是由组件本身和其父组件及其父级布局管理器。如果您的代码中没有更多细节,我们无法确定,但我会首先查看。