Les applets qui ne font pas appel à certaines méthodes spécifiques liées au document html les contenant (comme getParameter par exemple) peuvent facilement être incluses dans une application fenêtrée.
Il suffit de créer une instance de l'applet, puis d'appeler successivement ses méthodes init et start.
Utilisons l'applet Euro créée lors d'un précédent TD pour la transformer en application fenêtrée AppEuro.
public AppEuro() { setTitle("Conversion Euro"); Euro a=new Euro(); add(a); a.init(); a.start(); }
public static void main(String args[]) { System.out.println("Chargement en cours..."); AppEuro app=new AppEuro(); app.setBounds(200,100,300,200); app.show(); }
Il reste enfin à gérer l'évènement fermeture de la fenêtre. Cela peut se faire en utilisant l'interface WindowListener. Nous allons utiliser une autre méthode qui consiste à créer une nouvelle classe incluse dans la classe AppEuro (une innerClass) qui sera chargée de gérer cet évènement. Il s'agira d'une classe de type WindowAdapter qui implémente l'interface WindowListener; nous n'aurons ainsi qu'à redéfinir la méthode windowClosing.
Nous ajouterons donc les lignes suivantes pour définir la classe :
class ferme extends WindowAdapter { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }
Il suffira ensuite d'indiquer dans le constructeur que les évènements fenêtre sont gérés par une instance de la classe ferme en ajoutant la ligne :
addWindowListener(new ferme());
Remarques :
Un bon fonctionnement de l'application nécessite la présence des fichiers AppEuro.class, AppEuro$ferme et Euro.class dans le même répertoire. Il est possible de les regrouper dans un unique fichier compressé d'extension .jar en utilisant l'utilitaire jar fournit avec le JDK.
Le programme RealJ permet de réaliser cette opération de façon très simple grâce à la commande Project/Create jar... Le fichier créé contient les fichiers AppEuro.class, AppEuro$ferme.class et Euro.class, ainsi qu'un fichier "manifeste" qui permet de préciser le fichier contenant la méthode main de l'application.
Le fichier manifest.txt qui sert à créer le fichier manifeste
du fichier jar contient la ligne :
Main-Class: AppEuro
Si le JDK 1.2 est installé, le fichier AppEuro.jar obtenu peut être exécuté directement par double-clic.
A partir d'une console DOS on obtient le même résultat avec la
ligne de commande :
jar cmf manifest.txt fichier.jar *.class