Bonjour,

je ne comprends pas comment fonctionne les dimensions dans les fenêtres, je me retrouve avec des comportements totalement incohérents je m'explique:

Si je crée une fenêtre de dimension 400 de largeur sur 500 de hauteur, et que j'y intègre 2 JPanel:
un en haut, de dimension 400 de largeur sur 60 de hauteur, (situé à x=0 et y=0)
un en dessous qui prend le reste de la fenêtre, soit 400 de largeur et (500-60=)440 de hauteur (situé à x=0 et y=60).

Cela donne le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
JFrame fenetre = new JFrame();
		fenetre.setLocation(500,150);
		fenetre.setTitle("Fenetre cool");
		fenetre.setSize(400,500);
		fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		fenetre.setVisible(true);
 
                //panel du haut
		JPanel p1 = new JPanel();
		p1.setBackground(Color.blue);
		p1.setBounds(0, 0, fenetre.getWidth(), 60);
 
                //panel du bas
		JPanel p2 = new JPanel();
		p2.setBackground(Color.red);
		p2.setBounds(0, p1.getHeight(), fenetre.getWidth(), 400);
 
		fenetre.setLayout(null);
		fenetre.getContentPane().add(p1);
		fenetre.getContentPane().add(p2);

Le problème, c'est que le panel du bas (p2) dépasse du conteneur de la fenêtre et pour rentrer correctement, c'est à dire que son bord inférieur coïncide avec le bord inférieur de la fenêtre, sa dimension doit être de 400 !
Or, en tout logique, avec une fenêtre de 400x500, le panel du haut faisant 60 de haut, celui du bas, pour rentrer correctement devrait faire 500-60 = 440, or pour fit correctement il doit faire 400, cela n'a pas de sens ! Quelqu'un aurait une explication ?

PS: j'ai essayé en créant un JPanel contenu, Jpanel intermédiaire que je définis comme setContentPane() de la fenetre, avec un layout null et dans lequel j'ajoute mes 2 panels p1 et p2, mais j'obtient le même résultat.

Merci beaucoup !