Meilleur façon d'enchaîner les fenetre dans une application JAVA
ajp55
Messages postés
482
Statut
Membre
-
ajp55 Messages postés 482 Statut Membre -
ajp55 Messages postés 482 Statut Membre -
Bonjour,
Je suis débutant en java et j'ai de la peine à comprendre l'enchaînement des fenetre (ou du moins le setContentPane d'une fenetre).
En effet, j'ai plusieurs JPanel et qui affichent différents contenu en fonction du menu cliqué. Le problème, c'est que, je me vois souvent obligé d'instancier toute les autres classe JPanel dans la meme classe Fenetre.
Pour etre plus précis, voici un exemple:
Dans ma classe qui étends JFrame, je me vois contraint d'instancier toutes ces classes
et quelque part dans le code, en fonction du menu cliqué, je fais un
Jusque là, ça l'air de bien marché, mais je me pose toujours la question si c'est la meilleur façon d'enchaîner le contenu d'une fenetre qui varie au clic d'un menu.
Merci d'avance pour vos réponses.
Je suis débutant en java et j'ai de la peine à comprendre l'enchaînement des fenetre (ou du moins le setContentPane d'une fenetre).
En effet, j'ai plusieurs JPanel et qui affichent différents contenu en fonction du menu cliqué. Le problème, c'est que, je me vois souvent obligé d'instancier toute les autres classe JPanel dans la meme classe Fenetre.
Pour etre plus précis, voici un exemple:
public JPanel1 extends JPanel {} // dans un fichier JPanel1.java
public JPanel2 extends JPanel {} // dans un fichier JPanel2.java
public JPanel3 extends JPanel {} // dans un fichier JPanel3.java
Dans ma classe qui étends JFrame, je me vois contraint d'instancier toutes ces classes
public MaFenetre extends JFrame{
private JPanel1 pane1;
private JPanel2 pane2;
private JPanel3 pane3;
et quelque part dans le code, en fonction du menu cliqué, je fais un
setContentPane(pane1) ou setContentPane(pane2) our setContentPane(3)
Jusque là, ça l'air de bien marché, mais je me pose toujours la question si c'est la meilleur façon d'enchaîner le contenu d'une fenetre qui varie au clic d'un menu.
Merci d'avance pour vos réponses.
A voir également:
- Meilleur façon d'enchaîner les fenetre dans une application JAVA
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Application java - Télécharger - Langages
- Meilleur site de telechargement - Accueil - Outils
1 réponse
'lut, ici
Ceci dit, il est préférable d'utiliser un
Pour s'en servir, c'est simple: faire d'un
Et pour changer de "carte" affichée,
setContentPaneva remplacer le JPanel parent de tout le contenu de ta Frame, autrement dit changer entièrement de hiérarchie de contrôles. Si c'est ce que tu souhaites vraiment faire, alors ils n'y a pas de problème avec le fait de s'en servir.
Ceci dit, il est préférable d'utiliser un
CardLayout(tuto Oracle en anglais), qui au lieu de remplacer vraiment son contenu va changer celui affiché, donc tous les contrôles seront initialisés complètement avant leur affichage.
Pour s'en servir, c'est simple: faire d'un
new CardLayout()l'unique paramètre lors de la construction de ton (unqiue)
JPanelprincipal (variable nommée
cardspar ex). Après, tu y ajoutes des sous-JPanel avec
cards.add(<sous-JPanel>, <string d'identifiant>).
Et pour changer de "carte" affichée,
CardLayout cl = (CardLayout)(cards.getLayout()); cl.show(cards, <string d'ID>);
Mais l'idée, c'est d'utiliser moins de ressource que possible, le fait de chargé tous les contrôle dès le debut ne causera t-il pas de problème d'ergonomie??
Puisqu'avec le CardLayout,
Je vais laisser le sujet ouvert, pour tout autre suggestion.
Le titre dit bien, la meilleure facon, donc, si quelq'un à une autre proposition, je vais aussi l'explorer.