Mon premier programme J2ME

Le but de cet article est de comprendre la structure d'un programme J2ME (appelée "MIDlet" dans le jargon). Une midlet est une classe Java particulière puisqu'elle peut être exécuté par la JVM du téléphone de la même manière que peut l'être un main pour tout autre langage de programmation.
Pour ce faire, nous allons écrire quelques lignes permettant d'afficher la phrase "Hello World" à l'écran d'un téléphone.

1. Commençons par créer une classe "HellloWorld.java".
Vous devrier obtenir un fichier texte contenant les lignes suivantes :
public class HelloWorld {
}
Pour faire comprendre à la JVM que la classe "Helloworld" sera exécutable, faisons-la hériter de la classe "MIDlet" et implémentons la classe "CommandListener" qui permet l'utilisation du clavier du téléphone.
public class HelloWorld extends MIDlet implements CommandListener {
}

2. Ensuite déclarons les variables qui seront utilisées dans notre programme :
  • un afficheur : Display
  • un formulaire : Form
  • un bouton (pour sortir du programme) : Command
  • une zone de texte : TextField
public class HelloWorld extends MIDlet implements CommandListener {
//variables
TextField zoneText;
Display display;
Form affichage; //écran
static final Command exitCommand = new Command("Exit", Command.STOP, 0);
}
3. Initialisons les variables et plaçons-les élements dans le forumlaire
public class HelloWorld extends MIDlet implements CommandListener {
//variables
TextField zoneText;
Display display;
Form affichage; //écran
static final Command exitCommand = new Command("Exit", Command.STOP, 0);


public HelloWorld(){
display = Display.getDisplay(this); // on fait le lien avec l'affichage

affichage = new Form("Hello World Midlet"); //je donne un titre au formulaire
zoneText = new TextField("Hello World !", "Hello World !", 20, TextField.ANY); // je remplis la zone de texte

// je rajoute les éléments au formulaire
affichage.append(zoneText);
affichage.addCommand(exitCommand);
affichage.setCommandListener(this);
}
}
4. Implémentons les fonctions startApp, pauseApp, destroyApp, commandAction
"startApp", "pauseApp" et "destroyApp" sont des fonctions intrinsèques à notre midlet puisqu'elles permettent respectivement de la lancer, de la mettre en pause et de la détruire.
La fonction commandAction va quant à elle s'occuper des actions en permettant d'exécuter une ou plusieurs fonctions selon l'action de l'utilisateur.
/**
* Cette classe vous explique comment créer une application affichant un texte
*/

/**
* @author François K. - J2ME Facile - http://j2me.fr
*/

//déclaration des classes contenant quelques unes des fonctions utilisées
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;


public class HelloWorld extends MIDlet implements CommandListener {
//variables
TextField zoneText;
Display display;
Form affichage; //écran
static final Command exitCommand = new Command("Exit", Command.STOP, 0);


public HelloWorld(){
display = Display.getDisplay(this); // on fait le lien avec l'affichage

affichage = new Form("Hello World Midlet"); //je donne un titre au formulaire
zoneText = new TextField("Hello World !", "Hello World !", 20, TextField.ANY); // je remplis la zone de texte

// je reajoute les éléments au formulaire
affichage.append(zoneText);
affichage.addCommand(exitCommand);
affichage.setCommandListener(this);
}

public void startApp() {
// initialisation de l'affichage
display.setCurrent(affichage);
}
public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void commandAction(Command c, Displayable d) {
String label = c.getLabel();
//si commande reçue est Exit, alors je détruit l'application
if (label.equals("Exit")){
destroyApp(true);
}
}
}
5. Pour finir
Sauvegardez votre travail, lancer l'éxécution ("Build puis Run" pour JWTK ou "Run" pour Netbeans et Eclipse) et admirez votre travail :


blog comments powered by Disqus