今、私は小さなテトリスクローンをプログラムしようとしています。 したがって、ONE jFrame(複数のjPanel(メインメニュー、ゲーム自体、オプションなどなど)が含まれている必要があります。複数のjPanelをjFrameに入れてjPanelsを切り替える
私は少し調べました。多くの人がCardLayoutを使うべきだと言います。 NetBeans GUIビルダーに行って、jFrameをCradLayoutに切り替えて2つのパネルを追加しました。 最初のパネルにはボタンしかなく、2番目のパネルには私の「ゲーム」(テトリスマトリックスのグラフィカル表示、次のブロックのグラフィック表示、終了ボタン)が含まれています。
写真より良く理解するために:
「メインメニュー」( - 私の新しいので、2つの以上のリンクを投稿can't)「ゲーム開始」と言うだけのボタンです。
The structure of the "Card Layout in the NetBeans GUI Builder"
パネルの間にスイッチを達成するために - 私、この(少し研究した後に見つかった)を使用して:
@Action
public void cardSwitcher() {
CardLayout cl = (CardLayout) (gamePanel.getLayout());
cl.next(gamePanel);
}
"ゲーム開始" ボタンを押すと、その後の呼び出しをメソッドcardSwitcher()。
私は今jFrameを起動するとうまく始まり、スタートボタンとそのすべてが表示されます。しかし、私がボタンを押すとすぐに私はClassCastExceptionを取得します。 「javax.swing.GroupLayoutはjava.awt.CardLayoutにキャストすることはできません」
だから今、私の質問は、私もそれスイッチングに複数のJPanelで1つのフレームを持っている私の目標を達成することができ、ありますこれらはCardLayoutを使用するか、これを行うためのより簡単な方法がありますか?
ご協力いただきありがとうございます。
PS:間違ったスペルや文法の悪いことは申し訳ありませんが、私はネイティブスピーカーではありません。 さらに、質問にすでに回答があり、私が郵便局を見つけるために馬鹿にしていたら、すぐにこの投稿を削除するつもりです。そして私はいつも建設的な評論家のために開いています。
私はそれを修正しました。私のミスは、私がJFrameをCardLayoutにしようとしたことでした。そして、あなたが理解する限り、jFrameをCardLayoutにキャストすることはできません。あなたはjPanelを使うことができます。そこで、新しいjPanelを作成してカードレイアウトに変更し、jFanelではなくjPanelで構造を設定しました。しかし、とにかく皆様に感謝して、あなたは本当に解決策を見つけるのを手伝ってくれました。 – Gwitninm