0

CardLayoutのサイズが固定されているため、Swingでグリッドパネルを位置合わせできません。

カードレイアウトを使用したgridPanelgpTenderTypesがあります。

 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とともに別のgridPanelgp2rowに追加されます。

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 に答える