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 !
Partager