Gestion de Panels dans une fenetre
Fermé
Vincent B
-
24 déc. 2003 à 10:03
silfaxu Messages postés 102 Date d'inscription jeudi 18 décembre 2003 Statut Contributeur Dernière intervention 6 février 2008 - 24 déc. 2003 à 10:48
silfaxu Messages postés 102 Date d'inscription jeudi 18 décembre 2003 Statut Contributeur Dernière intervention 6 février 2008 - 24 déc. 2003 à 10:48
A voir également:
- Gestion de Panels dans une fenetre
- Logiciel gestion photo - Guide
- Tfc informatique de gestion g3 pdf ✓ - Forum Access
- Gestion des fenêtres windows 10 - Guide
- Logiciel de gestion de stock, inventaire et facturation gratuit - Télécharger - Comptabilité & Facturation
- Gestionnaire de fenetre du bureau ✓ - Forum Windows 10
1 réponse
silfaxu
Messages postés
102
Date d'inscription
jeudi 18 décembre 2003
Statut
Contributeur
Dernière intervention
6 février 2008
11
24 déc. 2003 à 10:48
24 déc. 2003 à 10:48
Salut,
Un petit peu de théorie (!?!) avant de passer à la pratique et tu verras que ton problème se résoud très bien.
Une JFrame est composée d'un RootPane. Ce RootPane est lui-même composé de 4 éléments :
* GlassPane (caché par défaut : sert à faire des effets de transparence)
* Layered Pane (sert à gérer les deux éléments suivants)
* Content Pane
* (optional) Menu Bar (classe JMenuBar)
Tu vois donc que ta barre de menu est déjà gérée par ta JFrame. Ce n'est donc pas la peine de la rajouter dans un layout (ici ton GridLayout). Ensuite l'ajout de composants dans ton ContentPane est lié à la notion de hierarchie (et donc de composition) de composants. Par exemple :
* ContentPane
|--- JPanel (supposons avec un BoxLayout)
|--- JTextField
|--- JButton
ce petit schéma signifie que ton ContentPane est composé d'un JPanel qui contient lui-même un JTextField et un JButton ce qui donnerait comme code :
JPanel myPanel ;
JTextField myTextField ;
JButton myJButton ;
// création des composants
myPanel = new JPanel() ;
myTextField = new JTextField(20) ;
myButton = new JButton("OK") ;
// création du layout du panneau
myPanel.setLayout(new BoxLayout(myPanel,BoxLayout.X_AXIS)) ;
// ajout des composants dans le panneau
myPannel.add(myTextField) ;
myPannel.add(myButton) ;
// ajout du panneau dans le ContentPane
myFrame.getContentPane().add(myPanel) ;
// affiche la frame avec les composants
this.setVisible(true) ;
Pour revenir à ton problème, il est maintenant clair que les deux lignes :
// première zone
this.getContentPane().setLayout(result);
et
//Deuxième zone
this.getContentPane().setLayout(vide);
sont incompatibles ... en faisant ça, tu remplaces result par vide dans ton ContentPane ...
le mieux, c'est de faire un dessin à la main avec tes différents composants graphiques et de voir coment ils s'imbriquent les uns par rapport aux autres pour choisir le bon layout et ensuite il suffit de les ajouter dans les bons panneaux ...
J'espere que ça t'aidera ..
sfx
--------------------------------------------------
Bonnes Fêtes de Fin d'Année à Tous
Un petit peu de théorie (!?!) avant de passer à la pratique et tu verras que ton problème se résoud très bien.
Une JFrame est composée d'un RootPane. Ce RootPane est lui-même composé de 4 éléments :
* GlassPane (caché par défaut : sert à faire des effets de transparence)
* Layered Pane (sert à gérer les deux éléments suivants)
* Content Pane
* (optional) Menu Bar (classe JMenuBar)
Tu vois donc que ta barre de menu est déjà gérée par ta JFrame. Ce n'est donc pas la peine de la rajouter dans un layout (ici ton GridLayout). Ensuite l'ajout de composants dans ton ContentPane est lié à la notion de hierarchie (et donc de composition) de composants. Par exemple :
* ContentPane
|--- JPanel (supposons avec un BoxLayout)
|--- JTextField
|--- JButton
ce petit schéma signifie que ton ContentPane est composé d'un JPanel qui contient lui-même un JTextField et un JButton ce qui donnerait comme code :
JPanel myPanel ;
JTextField myTextField ;
JButton myJButton ;
// création des composants
myPanel = new JPanel() ;
myTextField = new JTextField(20) ;
myButton = new JButton("OK") ;
// création du layout du panneau
myPanel.setLayout(new BoxLayout(myPanel,BoxLayout.X_AXIS)) ;
// ajout des composants dans le panneau
myPannel.add(myTextField) ;
myPannel.add(myButton) ;
// ajout du panneau dans le ContentPane
myFrame.getContentPane().add(myPanel) ;
// affiche la frame avec les composants
this.setVisible(true) ;
Pour revenir à ton problème, il est maintenant clair que les deux lignes :
// première zone
this.getContentPane().setLayout(result);
et
//Deuxième zone
this.getContentPane().setLayout(vide);
sont incompatibles ... en faisant ça, tu remplaces result par vide dans ton ContentPane ...
le mieux, c'est de faire un dessin à la main avec tes différents composants graphiques et de voir coment ils s'imbriquent les uns par rapport aux autres pour choisir le bon layout et ensuite il suffit de les ajouter dans les bons panneaux ...
J'espere que ça t'aidera ..
sfx
--------------------------------------------------
Bonnes Fêtes de Fin d'Année à Tous