CardLayout を使用して JFrame 内で JPanel を切り替える方法は?

Susan Sarandon
リリース: 2024-10-28 05:46:02
オリジナル
419 人が閲覧しました

How to Use CardLayout to Switch JPanels Inside a JFrame?

CardLayout を使用して JFrame 内で JPanel を切り替える方法

JFrame 内で JPanel を切り替えるのは簡単な作業です。 CardLayout と呼ばれる手法を使用して、これを効果的に実現する方法を見てみましょう。

次のコード スニペットは、CardLayout の使用方法の例を示しています。

<code class="java">CardLayout cardLayout = new CardLayout();
JPanel mainPanel = new JPanel(cardLayout);

MenuPanel menu = new MenuPanel();
GamePanel game = new GamePanel();
mainPanel.add(menu, "menu");
mainPanel.add(game, "game");</code>
ログイン後にコピー

ここでは、cardLayout という CardLayout インスタンスを作成します。そして、このレイアウト マネージャーを使用するメイン パネル mainPanel です。次に、menu と game という 2 つのパネルを、それぞれ「menu」と「game」という名前で mainPanel に追加します。

gameOn() メソッドを呼び出すと、cardLayout を使用してパネルの表示/非表示が変更されます。 。見せる()。たとえば、次のコード:

<code class="java">public void gameOn() {
    cardLayout.show(mainPanel, "game");
}</code>
ログイン後にコピー

はメニュー パネルを非表示にし、ゲーム パネルを前面に表示します。この方法では、非効率となる可能性があるコンポーネントの追加と削除を頻繁に行う必要がなくなります。

実行できる例は次のとおりです:

<code class="java">import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class GameFrame extends JFrame implements ActionListener{

    CardLayout cardLayout;
    JPanel mainPanel;
    MenuPanel menu;
    GamePanel game;

    public GameFrame() {
        // ... (similar to previous example)
    }

    // ...

    public void actionPerformed(ActionEvent e) {
        gameOn();
    }

    public void gameOn() {
        // ... (similar to previous example)
    }

    public static void main(String[] args) {
        // ... (similar to previous example)
    }
}</code>
ログイン後にコピー

この例では、CardLayout を使用してシームレスに切り替える方法を示します。 JFrame 内のメニューとゲーム パネル。

以上がCardLayout を使用して JFrame 内で JPanel を切り替える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート