2011-12-30 32 views
0

由於CardLayout的固定大小,我無法對齊Swing中的網格面板。更改Swing中CardLayout的大小

我有一個gridPanel gpTenderTypes我已經使用了卡布局。

gpTenderTypes.setLayout(new CardLayout()); 

當一個按鈕被點擊,該卡將改變和類將被稱爲(例如,被點擊的信用卡按鈕時,在網格面板的信用卡卡將被示出和在卡1()對象將是。叫

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

gpTenderTypes在另一個的GridPanel gp2row與其他2個gridpanels一起加入

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); 

我已經意識到,無論使用setSize或setPreferredSize更改其大小,CardLayout的大小都保持不變。改變其他GridPanels(gpCustDet,gpButtonsPanel)的尺寸也是沒有用的。

我該如何解決這個問題? 謝謝!

+3

請發佈模式代碼(SSCCE) – StanislavL 2011-12-30 08:46:12

回答

0

CardLayout(實際上其佈局爲CardLayout的組件的大小)不是由您對該組件的子項執行的任何操作定義的,而是由組件的子項及其父項的佈局經理。沒有你的代碼中的更多細節,我們不能確定,但​​我會先看看那裏。