0
getContentPane().setLayout(new CardLayout());
CardLayout x = (CardLayout) getLayout();

Netbeansを使用しており、デザインマネージャでJFrameのコンテンツをCardLayoutとして選択しました。しかし、今のところそれを機能させることはできません。initComponenets呼び出しの後に上記のコードを設定しましたが、それでもこのエラーが発生します。

java.awt.BorderLayout cannot be cast to java.awt.CardLayout

どういうわけか私はCardLayoutの代わりにBorderLayoutを持っています。どうしてそれは可能ですか?レイアウトをCardLayoutとして設定しました。PS:私のクラスはjavax.swing.JFrameを拡張します。

4

1 に答える 1

2

次を使用できます。

CardLayout x = (CardLayout) getContentPane().getLayout();

カードパネルを切り替えるのと同様に、次のものを使用できます。

x.show(getContentPane(), "card2");

これは、単に「カード」コンテナとして別のものを使用する場合は問題ではありません。さらに、場所などにナビゲーションボタンを追加したい場合に使用するという追加の利点があります。JPanelJFrame BorderLayoutBorderLayout.SOUTH

CardLayoutを使用するための必読

于 2012-12-14T03:00:42.163 に答える