BorderLayout [Résolu]

begueradj 291 Messages postés dimanche 4 octobre 2009Date d'inscription 25 août 2014 Dernière intervention - 14 juin 2011 à 14:46 - Dernière réponse : begueradj 291 Messages postés dimanche 4 octobre 2009Date d'inscription 25 août 2014 Dernière intervention
- 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 

Votre réponse

4 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 15 juin 2011 à 08:58
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.

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_Julien39
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 14 juin 2011 à 14:52
0
Merci
Je ne comprends rien quelle est ta question ?
Commenter la réponse de cs_Julien39
begueradj 291 Messages postés dimanche 4 octobre 2009Date d'inscription 25 août 2014 Dernière intervention - 14 juin 2011 à 17:29
0
Merci
je pense qu'avant de faire frame.add(), il faut d'abord faire frame.setLayout(), non ?
Commenter la réponse de begueradj
begueradj 291 Messages postés dimanche 4 octobre 2009Date d'inscription 25 août 2014 Dernière intervention - 15 juin 2011 à 10:15
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.