BorderLayout [Résolu]

Messages postés
291
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
25 août 2014
- - Dernière réponse : begueradj
Messages postés
291
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
25 août 2014
- 15 juin 2011 à 10:15
Bonjour,
j'ai trouvé l'exemple qui suit sur le site officiel de java.
Je me demande comment se fait-il que l'on n'a pas codé:
 frame.setLayout(new BorderLayout());
avant de faire
		frame.getContentPane().add(yellowLabel, BorderLayout.CENTER);


Merci pour la réponse:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TopLevelDemo{
/**
 * Create the GUI and and show it.For thread safety, this method
 * should be invoked from the event dispatching thread
 */
private static void createAndShowGUI(){
JFrame frame=new JFrame("TopLevelDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Create a menu bar. Make it have a green background
JMenuBar greenMenuBar=new JMenuBar();
greenMenuBar.setOpaque(true);
greenMenuBar.setBackground(new Color(154,165,127));
greenMenuBar.setPreferredSize(new Dimension(200,20));

//Create a yellow label in order to put it under this menu bar
JLabel yellowLabel=new JLabel();
yellowLabel.setOpaque(true);
yellowLabel.setBackground(new Color(248,213,231));
yellowLabel.setPreferredSize(new Dimension(200,180));

//Set the menu bar and add the the label to the content pane	
frame.setJMenuBar(greenMenuBar);
frame.getContentPane().add(yellowLabel, BorderLayout.CENTER);

//Display the window
frame.pack();
frame.setVisible(true);
}
public static void main(String args[]){
//Schedule a job for the event-dispatching thread
//Creating and showing this application's GUI
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
createAndShowGUI();
}
});
}
}
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
3
Merci
Par défaut, les panels ont déjà un layout, je crois que c'est un FlowLayout mais je n'en suis pas certain donc, tu n'es pas obligé de le faire.

Si ce qui te pose problème est que la fonction n'ait pas été redéfinie pour les frames, oui, c'est vrai que ca n'a pas été très bien géré. En général, je n'étends jamais la classe JFrame, j'étends toujours JPanel et ensuite, j'ajoute le panel dans la une frame.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Je ne comprends rien quelle est ta question ?
Commenter la réponse de cs_Julien39
Messages postés
291
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
25 août 2014
1
0
Merci
je pense qu'avant de faire frame.add(), il faut d'abord faire frame.setLayout(), non ?
Commenter la réponse de begueradj
Messages postés
291
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
25 août 2014
1
0
Merci
oui, vous avez raison: JFrame a un layout par défaut c'est Border Layout
c'est pour celà qu'ils n'ont pas mis le setBorderLyaout()
merci beaucoup pour la réponse
Commenter la réponse de begueradj