//Squelette d'application swing /* SquelFJ.java Squelette d'applicatiopn Swing bouton pour quitter avec mnémonique; la fin de l'application (méthode pourQuitter()), est accessible par: 1. appui sur bouton quitter 2. le bouton de fermeture de la fenêtre (système) 3. le raccourci clavier ALT+Q (cf. setMnemonic()) (modifier cette méthode si on ne veut pas terminer l'application) les méthodes panneauHaut(), auCentre(), aGauche() construisent des parties de la fenêtre des étiquettes l'une sous l'autre avec GridLayout() (cf. auCentre()) des éléments au nord, au centre à l'est avec BorderLaout() des éléments côte à côte avec FlowLayout() (cf. panneauHaut()) */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class SquelFJ extends JFrame { SquelFJ(String titre) { super(titre); Container base=this.getContentPane(); // Placer les composants dans la fenêtre base.add( panneauHaut(), BorderLayout.NORTH); Component auCentre = this.auCentre(); base.add(auCentre, BorderLayout.CENTER); base.add(aGauche(), BorderLayout.WEST); this.pack(); // calcul dimension des composants this.setLocation(50,400); // position de la fenêtre // this.setSize(250,400); // taille // Prévoir gestion d'événements // Fermeture de la fenêtre, avec appel à la méthode pourQuitter() this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { pourQuitter(0);} }); } // fin constructeur private JPanel panneauHaut() { // Créer les objets graphiques JLabel rien = new JLabel("le haut"); rien.setForeground(Color.yellow); JButton q=bQuitter("Quitter"); // Ajouter ces objets graphiques dans un 'JPanel' JPanel p = new JPanel(); p.add(rien); p.add(q); return p; } // Quatre étiquettes l'une sous l'autre avec couleur de fond private Component auCentre() { JPanel panneau = new JPanel(); panneau.setBorder(BorderFactory.createEmptyBorder( 10, // en haut 30, // à gauche 50, // en bas 70) // à droite ); // Composants l'un sous l'autre (1 seul par ligne) panneau.setBackground(Color.magenta); panneau.setLayout(new GridLayout(4, 1)); panneau.add(new JLabel("En haut")); panneau.add(new JLabel("dessous")); panneau.add(new JLabel("Au centre !!!")); panneau.add(new JLabel("En bas")); return panneau; } // Juste une marge à gauche, colorée en vert pour individualiser // le panneau private Component aGauche() { JPanel p = new JPanel(); p.setBackground(Color.green); return p; } // Lier l'action sur le bouton à la méthode pourQuitter() private JButton bQuitter(String eti) { JButton q = new JButton(eti); q.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { pourQuitter(0); } }); q.setMnemonic(KeyEvent.VK_Q); return q; } private void pourQuitter(int code) { System.exit(code); } // pour tester la construction de la fenêtre public static void main(String[] args) { // Créaton de la fenêtre, puis affichage SquelFJ app = new SquelFJ("SquelFJ"); app.setVisible(true); } } //fin class SquelFJ