BorderLayout [Résolu]

Signaler
Messages postés
291
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
25 août 2014
-
begueradj
Messages postés
291
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
25 août 2014
-
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();
}
});
}
}
A voir également:

4 réponses

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
271
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.
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
271
Je ne comprends rien quelle est ta question ?
Messages postés
291
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
25 août 2014
3
je pense qu'avant de faire frame.add(), il faut d'abord faire frame.setLayout(), non ?
Messages postés
291
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
25 août 2014
3
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