//Squelette de fenêtre awt en Java /* SquelF.java squelette de fenêtre et bouton quitter (AWT uniquement) un exemple avec 'implements WindowListener' fenêtre (géomètre: BorderLayout) au Nord, un panneau (contenant deux boutons) fermeture de la fenêtre surveillée (cf. adapter btn, txt_btn, cpt_btn, reflexe_btn, Robot_btn */ import java.awt.event.*; import java.awt.*; public class SquelF extends Frame { Button btn, quitter; String txt_btn="Appui "; int cpt_btn; public SquelF() { cpt_btn=0; try { dessineFen(); } catch (Exception e) { e.printStackTrace(); } } /** Dessiner la fenêtre principale */ private void dessineFen() throws Exception { Panel panBouts = new Panel(); // Pannau du haut avec deux boutons côte à côte btn = new Button(txt_btn+cpt_btn); quitter = pourQuitter("Quitter"); panBouts.add(btn); panBouts.add(quitter); // Titre et géomètre de la fenêtre principale this.setTitle("Dans la barre supérieure: SquelF"); this.setLayout(new BorderLayout()); this.add(panBouts,BorderLayout.CENTER); // Traitement des événements Robot_btn capteur = new Robot_btn(this); btn.addActionListener(capteur); } // Ajouter 1 au compteur et changer l'étiquette void reflexe_btn() { cpt_btn++; btn.setLabel(txt_btn+cpt_btn); } /** Construit un bouton et met en place deux réflexes (quitter par * un bouton ou par le gestionnaire de fenêtres) qui appellent * la méthode quitterFen() */ Button pourQuitter(String ch) { // Pour quitter par le bouton Button quit = new Button(ch); quit.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { quitterFen(); } }); // Pour quitter par l'encadrement (gestionnaire de fenêtres) WindowAdapter pf = new WindowAdapter() { public void windowClosing(WindowEvent e) { quitterFen(); }; }; this.addWindowListener(pf); return quit; } /** Surveille, si nécessaire, la fermeture de la fenêtre (adapter suivant les besoins) */ void quitterFen() { System.exit(0); } public static void main(String[] args) { SquelF fen = new SquelF(); fen.setSize(new Dimension(200, 300)); fen.setVisible(true); } } // fin class SquelF // Réaction à l'appui sur le bouton class Robot_btn implements ActionListener { SquelF fen; Robot_btn(SquelF f) { fen = f; } public void actionPerformed(ActionEvent e) {fen.reflexe_btn();} } /* Les méthodes de l'interface WindowListener class IWL implements WindowListener { Frame cadre; IWL(IHM2 c) { Frame = c; } public void windowOpened( WindowEvent ev ) { System.out.println("windowOpened"); } public void windowActivated( WindowEvent ev ) { System.out.println("windowActivated"); } public void windowDeactivated( WindowEvent ev ) { System.out.println("windowDeactivated"); } public void windowDeiconified( WindowEvent ev ) { System.out.println("windowDeiconified"); } public void windowIconified( WindowEvent ev ) { System.out.println("windowIconified"); } public void windowClosed( WindowEvent ev ) { System.out.println("windowClose"); } public void windowClosing( WindowEvent ev ) { cadre.fermer(); } } */ // fin SquelF.java