Pour Java une application fenêtrée est une classe dérivée de la classe Frame qui représente les fenêtres. Sa méthode main devra construire une instance de la classe et l'afficher.
Nous créons une classe bonjour qui étend la classe Frame et qui implémente l'interface WindowListener pour réagir en particulier à l'évènement fermeture de la fenêtre.
import java.awt.*; import java.awt.event.*; public class bonjour extends Frame implements WindowListener { public bonjour() { setBackground(Color.white); setSize(300,200); setTitle("Essai"); addWindowListener(this); }
Nous avons utilisé le constructeur pour choisir une couleur de fond (setBackground), une taille (setSize) et un titre (setTitle). Enfin nous redirigeons les évènements liés à la fenêtre vers elle-même.
L'interface WindowListener nous oblige à définir 5 méthodes.
public void windowClosing(WindowEvent e) { System.exit(0); } public void windowClosed(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowActivated(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void windowOpened(WindowEvent e) {}
Seule la méthode windowClosed est complétée pour provoquer l'arrêt de l'application lors de la fermeture de la fenêtre.
Comme nous désirons afficher l'expression "Bonjour !", nous réécrivons la méthode paint.
public void paint(Graphics g) { int x=(getSize().width-80)/2; int y=(getSize().height-20)/2; g.drawString("Bonjour !", x,y); }
Les coordonnées d'affichage sont calculées pour que le texte soit à peu près centré dans la fenêtre.
La méthode main affiche un message, crée une instance de la fenêtre et l'affiche.
public static void main(String args[]) { System.out.println("Chargement en cours ..."); bonjour b=new bonjour(); b.show(); }
Le fichier bonjour.java peut être compilé et exécuté.
Par défaut, les fenêtres créées ont une icône représentant une tasse de café (Java oblige). On peut leur associer une autre icône fournie sous forme d'image gif de dimension 16x16 avec l'instruction :
setIconImage(Toolkit.getDefaultToolkit().getImage("fic.gif"));
Il suffit d'entrer la ligne de commande :
java bonjour
La fenêtre de l'application s'ouvre; elle peut être déplacée, redimensionnée ou réduite dans la barre de tâches. On quitte l'application en fermant la fenêtre.
On commence par créer un raccourci vers le fichier bonjour.class dans son propre dossier. On édite ensuite les propriétés de ce raccourci (clic droit, menu Propriétés). Dans l'onglet Raccourci, on complète la ligne de saisie Cible en la faisant commencer par jview (programme Windows).
On peut aussi écrire javaw bonjour. Le programme javaw permet d'exécuter une application java sans ouvrir de console DOS.