begueradj
Messages postés273Date d'inscriptiondimanche 4 octobre 2009StatutMembreDernière intervention24 juin 2014
-
14 juin 2011 à 14:46
begueradj
Messages postés273Date d'inscriptiondimanche 4 octobre 2009StatutMembreDernière intervention24 juin 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é:
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();
}
});
}
}
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 15 juin 2011 à 08:58
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.
begueradj
Messages postés273Date d'inscriptiondimanche 4 octobre 2009StatutMembreDernière intervention24 juin 20149 15 juin 2011 à 10:15
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