Bonjour,
Je me suis posé la question suivante, sur quel type d'objet pouvait-on appliquer un Layout manager via la méthode setLayout.
Après quelques recherches, j'ai trouvé que cette méthode (setLayout) est implantée dans la classe Container.
Dans les différents exemples que j'ai trouvé sur net, la méthode setLayout() est appliquée sur le ContentPane d'un JFrame via getContentPane(). Normal, puisque getContentPane() renvoie un Container.
D'autres exemples appliquent le setLayout() sur un JPanel, normal puisque JPanel hérite de Container.
Mais JFrame hérite également de Container, je me suis donc dit que l'on pouvait appliquer un setLayout() sur un JFrame.
Et ca marche:
Fenetre hérite de JFrame.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 import java.awt.BorderLayout; public class Application { public static void main(String[] args) { @SuppressWarnings("unused") Fenetre fenetre = new Fenetre("Ma fenètre"); fenetre.setLayout(new BorderLayout()); } }
Mais quelle est l’intérêt, ne doit-on pas placer (et donc ordonnancer) les composants sur le contentPane de ce JFrame ?
En clair, pourquoi JFrame hérite de Container ?
Et donc pourquoi peut-on appliquer un setLayout() directement sur un JFrame ?
Cordialement
Partager