Salut,
bon voilà un petit exemple, après il risque d'y avoir quelques petits problème de taille, mais c'est pas trop compliqué à résoudre.
Bien sût maintenant il faut que tes différents panel soient des InternalFrame. Il y a aussi une méthode qui devrait t'intéresser, c la méthode getSelectedFrame() de la classe JDesktopPane.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 public void init(){ getContentPane().setBackground(new Color(255,255,255)); //couleur de font de la JFrame menuFenetre = new MenuFenetre(); setJMenuBar(menuFenetre); //on insére les Menus JDesktopPane desktop = new JDesktpopPane(); desktop.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = 0; c.gridwidth = 2; c.gridheight = 1; c.weightx = 1; c.weighty = 1; c.anchor = GridBagConstraints.BOTH; c.fill = GridBagConstraints.BOTH; panelHaut = new Haut(); desktop.add(panelHaut,c); c.gridy = 1; c.gridwidth = 1; partieDuBas = new PartieDuBas(); desktop.add(partieDuBas,c); c.gridx = 1; panelDroite = new Droite(); desktop.add(panelDroite); getContentPane().setLayout(new BorderLayout()); getContentPane().add(panelHorizontal,BorderLayout.CENTER); }
Le layout utilisé est un layout qui découpe la zone d'affichage en case (comme un grille), mais ces cases peuvent être fusionnées. Tu le paramètres avec un GridBagConstraints dont voici les principales caractéristiques :
- gridx, gridy : coordonnées de la case dans la zone d'affichage)
- gridwidth, gridheight : nombre de case's occupées à partir de la position initiale
- wightx, weighty : comportement du composant selon les deux axes lors de l'affichage
- fill et anchor : comportement quand le composant et la zone d'affichage ont pas les mêmes tailles.
Voilà, après faut faire Joujou sur weightx et weighty (valeurs comprises entre 0 et 1) et sur es tailles de tes JFrame.
Une autre solution consisterait à ne pas mettre de Layout et à positionner toi-même tes fenêtres en fonction de leur taille et de la taille du desktop. A toi de voir ce que tu préfères.