web-dev-qa-db-fra.com

Comment utiliser CardLayout avec Netbeans GUI Builder

Préface (ceci est un message d'auto-réponse)

Je me suis mouillé les pieds avec Netbeans GUI Builder mais je ne commence tout simplement pas à y plonger pour apprendre les détails les plus complexes. Je ne savais vraiment pas comment changer le gestionnaire de disposition de la vue de conception, je le coderais simplement. J'ai donc essayé de demander au helpdesk de Google en demandant "Comment utiliser différents gestionnaires de mise en page dans Netbeans GUI Builder" et j'ai trouvé étonnamment zilch dans les deux premières pages de Les resultats. Dans Eclipse Window Builder, à partir de la palette, vous pouvez faire glisser et déposer différents gestionnaires de disposition, alors pourquoi pas dans GUI Builder. Et voilà, après des heures de recherche, j'ai trouvé le magique Set Layout dans le menu contextuel d'un composant de conteneur. Maintenant, je suis prêt à gouverner le monde!

Je pensais que je jette quelques tutoriels sur la façon d'utiliser différents gestionnaires de mise en page de GUI Builder, ici sur SO pour que les autres ne deviennent pas chauves en se déchirant les cheveux en essayant de comprendre ce que je suis Après avoir terminé le premier tutoriel sur CardLayout (ci-dessous), je me prépare à publier mes efforts et à taper le titre de la page Poser une question, "Comment utiliser CardLayout avec Netbeans GUI Builder" . What the ... !!. Il y avait déjà une question posée à ce sujet sujet !!. Je suppose que j'aurais dû rendre ma requête Google plus précise. DOHH!

Quoi qu'il en soit, j'ai maintenant ce tutoriel, qui est encore plus informatif que ceux fournis dans d'autres réponses, donc mes efforts n'auront pas été gaspillés (alors je me dis: D). Je ferai peut-être une série de ces tuts. Nous verrons. Pour l'instant, profitez Comment utiliser CardLayout: P

21
Paul Samsotha

Comment utiliser CardLayout

  1. Avec un nouveau formulaire JFrame, ajoutez un JPanel, quelques JButtons au formulaire pour qu'il ressemble à ceci

    enter image description here

    Votre volet de navigation devrait ressembler à ceci. Remarquez que j'ai changé les noms des variables. Vous pouvez le faire en cliquant avec le bouton droit sur le composant dans le navigateur et en sélectionnant changer le nom de la variable.

    enter image description here

  2. Nous voyons maintenant la disposition de mainPanel à CardLayout. Double-cliquez sur mainPanel dans le navigateur pour qu'il soit visible par lui-même dans la vue de conception. Cliquez ensuite avec le bouton droit dans le navigateur et sélectionnez Définir la mise en page -> CardLayout. Votre navigateur devrait maintenant ressembler à ceci

    enter image description here

  3. Nous allons maintenant ajouter différents JPanels au mainPanel. Faites un clic droit sur le mainPanel dans le navigateur et sélectionnez Ajouter à partir de la palette -> Swing Containers -> JPanel. Faites cela trois fois pour avoir trois JPanels différents. J'ai également changé leurs noms de variables. Votre navigateur ne devrait pas ressembler à ceci.

    enter image description here

  4. La partie de mise en page est définie mais permet d'ajouter des étiquettes afin que nous puissions faire la différence entre JPanels et également changer le nom de leur carte . Double-cliquez donc sur panelOne dans le navigateur. Vous verrez le panneau dans la vue de conception. Glissez-déposez simplement un JLabel dessus et modifiez le texte de l'étiquette en Panel One. Faites cela pour les deux autres également, en nommant leurs étiquettes en conséquence. Lorsque vous avez terminé, votre navigateur devrait ressembler à ceci.

    enter image description here

    Nous voulons également changer le nom des panneaux qui ont été donnés comme références CardLayout. Nous pouvons le faire en double-cliquant sur l'un des panneaux (panelOne) et en allant dans le volet des propriétés. Là, vers le bas, vous verrez une propriété Card Name. Remplacez-le par ce que vous voulez, j'ai utilisé panelOne. Faites cela pour les deux autres JPanel

    enter image description here

    Remarque: à tout moment, vous pouvez modifier la position de la mise en page, par exemple si vous souhaitez que panelTwo soit initialement affiché, au lieu de panelOne. Faites un clic droit sur mainPanel et sélectionnez Modifier l'ordre. Vous pouvez déplacer les panneaux vers le haut ou vers le bas sur la commande.

  5. Nous avons presque fini. Nous avons juste besoin d'ajouter les écouteurs aux boutons pour basculer entre les panneaux dans le CardLayout. Double-cliquez donc sur le cadre depuis le navigateur. Vous devriez voir les boutons maintenant. Faites un clic droit sur le Panel One bouton. et sélectionnez Events -> Action -> actionPerformed. Vous devriez voir le code généré automatiquement dans la vue du code source. Ajoutez ce morceau de code

    private void jbtPanelOneActionPerformed(ActionEvent evt) {                                            
        CardLayout card = (CardLayout)mainPanel.getLayout();
        card.show(mainPanel, "panelOne");
    } 
    

    Effectuez cette opération pour les deux autres boutons, en veillant à transmettre le nom correct du panneau correspondant à la méthode show.

Si vous avez suivi les 5 étapes ci-dessus, votre programme devrait s'exécuter comme suit.

enter image description here


Il est également possible de faire glisser et de déposer d'autres classes de formulaire JPanel sur votre mainPanel, si vous en avez d'autres que vous souhaitez utiliser. Cela peut être une approche préférée pour les cas non triviaux plus gros, pour éviter les classes gigantesques.

enter image description here

62
Paul Samsotha