Maison > Java > javaDidacticiel > Comment remplacer dynamiquement des JPanels dans un JFrame ?

Comment remplacer dynamiquement des JPanels dans un JFrame ?

Patricia Arquette
Libérer: 2024-10-24 17:20:03
original
1090 Les gens l'ont consulté

How to Dynamically Replace JPanels in a JFrame?

Remplacement dynamique d'un JPanel dans un JFrame

Le remplacement dynamique d'un JPanel dans un JFrame implique de comprendre le système de gestion de mise en page dans Swing. Bien que vous ayez tenté d'utiliser pack() pour ajuster la mise en page, cela régit principalement les dimensions de la fenêtre plutôt que de gérer le remplacement des composants.

Utilisation de CardLayout pour la gestion dynamique de JPanel

CardLayout fournit une solution élégante pour basculer entre plusieurs panneaux dans un seul conteneur. Voici comment l'implémenter :

  1. Créer un objet CardLayout :

    <code class="java">CardLayout cardLayout = new CardLayout();</code>
    Copier après la connexion
  2. Définir le CardLayout en tant que gestionnaire de mise en page du conteneur :

    <code class="java">parentFrameJPanelBelongsTo.setLayout(cardLayout);</code>
    Copier après la connexion
  3. Ajouter les panneaux au conteneur :

    <code class="java">parentFrameJPanelBelongsTo.add(panel, "CUSTOM_PANEL_ID");
    parentFrameJPanelBelongsTo.add(newOtherPanel, "NEW_PANEL_ID");</code>
    Copier après la connexion
  4. Basculer entre les panneaux :

    <code class="java">cardLayout.show(parentFrameJPanelBelongsTo, "CUSTOM_PANEL_ID");</code>
    Copier après la connexion
  5. Emballer le cadre :

    <code class="java">parentFrameJPanelBelongsTo.pack();</code>
    Copier après la connexion

Exemple d'utilisation :

Dans votre exemple, vous pouvez modifier le code comme suit :

<code class="java">CustomJPanelWithComponentsOnIt panel = new CustomJPanelWithComponentsOnIt();

// Create and set the CardLayout
CardLayout cardLayout = new CardLayout();
parentFrameJPanelBelongsTo.setLayout(cardLayout);

// Add the panels to the frame
parentFrameJPanelBelongsTo.add(panel, "CUSTOM_PANEL_ID");

// Switch to the desired panel
cardLayout.show(parentFrameJPanelBelongsTo, "CUSTOM_PANEL_ID");

// Pack the frame
parentFrameJPanelBelongsTo.pack();</code>
Copier après la connexion

En utilisant CardLayout, vous pouvez remplacer de manière transparente JPanels dans un JFrame à la volée, assurant une interface dynamique et réactive pour l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal