//
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