TUTORIELS 

Présentation de J2ME: Deuxième partie
Par Bruno Delb (Net Innovations)

Suite de l'exploration de Java 2 Micro Edition, "le Java de la mobilité", avec un premier "MIDlet". Proposé par Bruno Delb, de Net Innovations.  (05 février 2002)
 

Pages 1 | 2

Les méthodes du cycle de vie

Le gestionnaire d'application appelle les méthodes associées aux différentes étapes de son cycle de vie. Il appelle en tout premier la méthode startApp() pour lancer le MIDlet. Dans notre cas, elle rend le Display courant (lignes 17 à 19).
La second étape du cycle de vie est la suspension du MIDlet. Cela est fait en appelant la méthode pauseApp().Cette méthode doit libérer les ressources partagées comme les threads ou les connexions. Dans notre exemple, nous ne faisons rien (lignes 21 et 22).
La troisième et dernière étape consiste à terminer et détruire le MIDlet. Pour cela, le gestionnaire d'application appelle la méthode destroyApp(). Cette méthode libère toutes les ressources et sauvegarde toutes les données persistentes. Nous n'utilisons ni des ressources ni des données persistentes, la méthode est donc vide (lignes 24 et 25).

L'interface utilisateur

L'interface utilisateur est basée sur un composant TextBox, similaire aux composants TextArea et TextField de l'AWT (Abstract Window Toolkit). Il faut savoir que l'interface utilisateur d'un MIDlet est adaptée aux caractéristiques des terminaux mobiles légers.

Le composant TextBox

Notre interface utilisateur, en dehors d'une commande, ne comprend qu'un seul composant, un TextBox. Ce dernier possède trois propriétés : un libellé, un contenu initial (c'est la valeur par défaut) et un type. Pour utiliser cet objet, il vous suffit lors de la création du composant de spécifier le libellé et le contenu initial. Ensuite, vous ajoutez les commandes à la zone de saisie et demandez au MIDlet d'écouter les événements d'action en appelant les méthodes TextBox.setCommand et TextBox.setCommandListener.
Dans notre exemple, le texte HelloWorld apparaît dans la zone du titre et le texte Bonjour le monde apparaît dans la zone du contenu initial. La commande Sortie apparaît dans la zone de commande et est associée à la touche juste en dessous et à sa droite.

L'association des commandes aux touches

L'association des commandes aux touches est dépendante du terminal et est gérée par le terminal selon le type spécifié lors de la création de la commande. La classe MIDP Command vous permet de spécifier les types de commande : BACK, CANCEL, EXIT, HELP, ITEM, OK, SCREEN et STOP.
Dans notre exemple, la pression du bouton dont le texte figure au-dessus appelle la méthode commandAction() et lui passe une référence à la commande cmdExit. La pression de la touche rouge appelle la méthode destroyApp(true). Le MIDlet se termine alors et l'environnement retourne au gestionnaire d'application.

La priorité

Si plusieurs commandes d'une même application ont un même type de commande, alors la valeur de priorité fixée détermine la manière dont va se faire l'association des commandes aux touches. Plus la valeur de priorité est grande, plus importante est la commande.
Concrètement, le terminal choisit l'emplacement d'une commande selon le type de commande de même type par ordre de priorité. Cela peut signifier que la commande de plus haute priorité est placée de manière à ce que l'utilisateur puisse la déclencher directement et que les commandes avec une priorité inférieure sont placées dans un menu.

La gestion des événements

Les événements sont gérés par la méthode commandAction. Elle reçoit en paramètre un objet événement qui permet d'identifier la provenance de l'événement survenu (ligne 27).
Ensuite, elle détermine le composant dans lequel est survenu cet événement (ligne 28).
Si c'est bien la commande Sortie qui a été activée, alors on détruit l'application (ligne 29) puis on notifie au gestionnaire d'application que le MIDlet est détruit (ligne 30).

Conclusion

Cet exemple simple montre la facilité de développement d'un MIDlet. Bien entendu, il s'agit d'un exemple trivial, mais le développement d'un MIDlet reste bien plus simple que le développement d'une application J2EE, tout simplement parce que l'API MIDP est bien plus légère. Par contre, vous devrez changer nombre de vos habitudes de développement, tant au niveau du stockage des données que de l'interface utilisateur.

Pages 1 | 2

 
[ Bruno Delb pour JDNet
 
Accueil | Haut de page