0

ステートのスタックを含むゲームのステート マネージャーがあります。現在、状態の 1 つ (「メニュー」) では、JPanel に 2 つの JButton があります (JPanel は、すべてを表示するメインの JPanel に追加されます)。JButton の「再生」をクリックすると、メニュー状態がスタックから削除されます。ただし、JButtons は画面に残ります (peek() を実行すると、メニューがスタックから削除されていることがわかります)。

ボタンを状態から削除したくありません。メニューに戻ってボタンをもう一度表示できるようにしたいからです。状態とともにボタンを削除するにはどうすればよいですか?

4

2 に答える 2

3

CardLayoutの使用を検討しましたか?

CardLayout オブジェクトは、コンテナーのレイアウト マネージャーです。コンテナー内の各コンポーネントをカードとして扱います。一度に表示できるカードは 1 枚だけで、コンテナはカードのスタックとして機能します。CardLayout オブジェクトに最初に追加されたコンポーネントは、コンテナが最初に表示されたときに表示されるコンポーネントです。

于 2012-08-06T04:15:00.253 に答える
2

各状態が 1 つの に対応すると仮定するとJComponent、メソッドを使用して.setVisible(false);、状態が削除されたときに項目を非表示にすることができます。

この場合、メイン コンポーネントを初期化するときに、すべてのコンポーネントが追加されていることを確認する必要があります。その後、状態を追加/削除するときに、可視性を切り替えることができます。

于 2012-08-06T04:50:01.647 に答える