Cours Netbeans

Cours Créer un Log file sous NetBeans IDE et la plate-forme J2ME


Télécharger Cours Créer un Log file sous NetBeans IDE et la plate-forme J2ME

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Cours Créer un Log file sous NetBeans IDE et la plate-forme J2ME

...

Modules Inclus

Les modules inclus sont :

kjava.nbm - J2ME Wireless Module. Supporte le développement de MIDP/CLDC, fournissant de nombreux templates, intégration compilation exécution et débogage sous des émulateurs.

kjava-emulator - J2ME Wireless Toolkit 1.0.4_01 Module. Fournit l'émulation pour la plateforme MIDP-1.0/CLDC 1.0 et de nombreuses fonctionnalités de monitoring. Les modules J2ME Wireless Toolkit sont fournit pour les plateformes Solaris, Linux, et Windows, et sont nommés kjava-emulator_sol.nbm, kjava-emulator_linux.nbm, et kjava-emulator_win.nbm.

wtk21.nbm - J2ME Wireless Toolkit 2.1 Module. Fournit une émulation pour la plateforme MIDP 2.0/CLDC 1.1, comprenant les standards de sécurité, et le support pour des applications qui utilisent le Wireless API (WAPI) et Multimédia API (MMAPI). Les modules J2ME Wireless Toolkit sont fournit pour les plateformes Solaris, Linux, et Windows, et sont nommés wtk21_solaris.nbm, wtk21_linux.nbm, et wtk21_windows.nbm.

kjava-obfuscator-retroguard.nbm - RetroGuard Integration Module. Fournit le support d'intégration pour l'obfuscateur RetroGuard obfuscator. L'obfuscateur The RetroGuard est inclut dans le module.

kjava-obfuscator-proguard.nbm - Module d'Intégration ProGuard. Fournit le support d'intégration pour l'obfuscateur ProGuard. Après que vous ayez ajouté ce module, vous devez également télécharger et ajouter l'obfuscateur ProGuard comme décrit ci-dessous.

kjava-examples.nbm - Modules d'Exemples. Fournit des applications d'exemple MIDP qui démontrent les fonctionnalités et API supportées

Installation des Modules de Mobilité

Pour installer les Modules de Mobilités:

Sélectionnez Outils > Centre de Mise à Jour.

Cela ouvre l'assistant de Centre de Mise à Jour.

Sur la première page de l'assistant, sélectionnez le bouton radio Install Manually Downloaded Modules (.nbm files). Suivez les instructions de l'assistant pour télécharger et installer les modules suivants depuis le Centre de Mise à Jour:

Requis:

module J2ME Wireless

module J2ME Wireless Toolkit 2.1 pour votre plateforme .

Optionnel:

module J2ME Wireless Toolkit 1.0.4_01 pour votre plateforme.

module d'Intégration RetroGuard

module d'Intégration ProGuard

module d'Exemples

Si certaines de ces modules ne sont pas visible dans le Centre de Mise à Jour, cela signifie qu'ils sont déjà installés.

Notez que les modules d'intégration de RetroGuard et ProGuard sont optionnels. Si vous choisissez de les installer, le choix de menu, "Obfuscators", sera disponible dans le menu Tools après que les modules aient été installés.

Notez également que l'obfuscateur RetroGuard est inclut avec les modules de mobilités. Pour utilisez l'obfuscateur ProGuard, vous devez tout d'abord le télécharger et l'installer, comme décrit ci-dessous.

Installation de l'Obfuscateur ProGuard

Pour installer l'obfuscateur ProGuard:

Téléchargez l'obfuscateur ProGuard (proguard2.0.1.tar.gz ou proguard2.0.1.zip) depuis http://proguard.sourceforge.net/.

Untar ou unzip le fichier dans un répertoire de votre système.

Ajoutez l'obfuscateur ProGuard en utilisant l'Obfuscator Registry:

Choisissez Tools > Obfuscators. La boîte de dialogue Obfuscator Registry s'ouvre.

Dans le panneau de droite, sélectionnez le noeud pour l'obfuscateur que vous désirez installer. La feuille de propriété pour l'obfuscateur est affichée dans le panneau de gauche.

Cliquez sur le bouton d'ellipse (...) pour la propriété Obfuscator Executable. Une fenêtre pour Ouvrir le Fichier s'ouvre.

Utilisez la fenêtre File Chooser pour naviguer jusqu'au fichier JAR de l'obfuscateur (par exemple, proguard.jar) and cliquez sur OK. Le chemin jusqu'au fichier JAR est montré dans la feuille de propriété.

Vous pouvez maintenant intégré l'obfuscation dans votre processus de compilation, comme décrit dans l'aide en ligne des modules de Mobilité.

Configuration de l'Emulateur PalmOS

Si vous désirez exécuter l'Emulateur Palm OS qui est inclut avec le J2ME Wireless Toolkit 1.0.4, vous devez installer l'émulateur avant d'installer l'EDI NetBeans. Vous pouvez télécharger l'émulateur depuis la page http://www.palmos.com/dev/tech/tools/emulator/.

Vous devez tout d'abord configurer l'émulateur comme suit:

Rediriger les appels NetLib sur le TCP/IP du host.

Pour que certaines fonctions comme le débogage et la connectivité Internet fonctionnent, vous devez définir les appels d'API NetLib pour être redirigé depuit l'Emulateur Palm OS pour utiliser le TCP/IP de votre ordinateur.

Exécuter l'Emulateur Palm OS et cliquez-droit sur l'émulateur.

Un menu apparaît.

Sélectionnez Settings > Properties…

La boîte de dialogue des Propriétés apparait.

Cocher la case Redirect NetLib calls to host TCP/IP, et cliquez sur OK.

La boîte de dialogue des propriétés disparait.

Cliquez-droit sur l'émulateur et sélectionnez Save.

Vos modifications sont enregistrées.

Désactiver le débogage.

L'Emulateur Palm OS permet à de nombreux éléments d'être débogué durant l' exécution de l'application. Cependant, pour que l'Emulateur Palm OS focntionne avec l'EDI NetBeans, le débogage doit être désactivé.

Exécutez l'Emulateur Palm OS, et cliquez-droit sur l'émulateur.

Un menu apparaît.

Sélectionnez Settings Æ Debugging…

La boîte de dialogue de Débogage apparaît.

Décochez toutes les cases et cliquez sur OK.

La boîte de dialogue de Débogage disparait.

Cliquez-droit sur l'émulateur et sélectionnez Enregistrer.

Vos modifications sont enregistrées.

Définir l'endroit de l'Emulateur Palm OS dans l'EDI.

La première fois que vous exécutez une application en utilisant l'Emulateur Palm OS via l'EDI, une boite de dialogue apparaît, vous demandant l'endroit où se site l'émulateur Palm OS. Après que vous ayez définit cet endroit, la boite de dialogue n'apparaitra plus lorsque vous exécuterez les applications MIDP en utilisant l'émulateur.

… … …

Installation et test de l'exemple de projet Conversion de devises

Dans cette première partie, nous allons voir à quelle vitesse il est possible de mettre en place et d'exécuter une application dans deux émulateurs différents.

Création du projet         

Choisir File > New Project. Dans Categories, sélectionner Samples > Mobile. Dans Projects, choisir Currency Converter. Appuyer sur Next

Le nom du projet et son emplacement sont renseignés dans la page Project Name and Location. Il y est possible de spécifier qu'il s'agit de votre projet principal. Choisir Next pour accepter les choix par défaut.

La page de sélection de la plate-forme permet de choisir l'environnement d'exécution par défaut du projet (emulator platform). La plate-forme d'émulation par défaut est le J2ME Wireless Toolkit et le périphérique par défaut est un périphérique générique appelé DefaultColorPhone. Choisir Finish pour conclure le travail de l'assistant.

Le projet Conversion de devises "Currency Converter" apparaît dans la fenêtre des projets.

Exécution du projet      

Choisir Run > Run Main Project.

L'application de conversion de devises apparaît dans le périphérique émulé DefaultColorPhone.

Il est alors possible de tester l'application dans cet émulateur.

Test de l'application      

Dans l'émulateur DefaultColorPhone, appuyer sur le bouton qui se trouve sous "Launch".

Sélectionner la devise à convertir en appuyant sur les flèches vers le haut et le bas et sur le bouton "Select". Les choix possibles sont Dollars, Euros ou Yen.

Saisir un montant à convertir en utilisant les touches numériques de l'émulateur.

L'application applique le taux de conversion et affiche le résultat.

Le bouton situé sous "Exit" permet de quitter l'application.

le bouton rouge en haut à droite de l'émulateur permet de fermer celui-ci.

Modification du périphérique émulé par défaut             

Il est possible de créer différentes configuration de projet pour tester une MIDlet dans des environnements d'émulation différents ou simplement en modifiant le périphérique par défaut de l'application.

Avec un click droit sur le nœud "Currency Converter", choisir Properties. Dans le dialogue qui s'affiche sélectionner le nœud Platform. Le menu déroulant en face de "Device" permet de sélectionner le périphérique par défaut.

Choisir QwertyDevice dans ce menu déroulant et cliquer sur OK.

Choisir Run > Run Main Project pour exécuter de nouveau l'application, cette fois-ci dans le nouvel émulateur QwertyDevice (en attendant l'AzertyDevice...).

Dans la suite de ce didacticiel, nous allons partir d'un nouveau projet vierge. Ceci doit vous permettre de comprendre l'organisation du code de l'application et la manière dont l'EDI peut vous aider à développer et tester vos propres applications.

Création de l'application Conversion de devises

Création du projet         

Choisir File > New Project. Dans Categories, choisir Mobile. Sous Projects, sélectionner Mobile Application et cliquer sur Next.

Dans l'écran suivant, nommer le projet ConvertisseurDevises et accepter le choix par défaut pour la propriété Project Home. S'assurer que la boîte à cocher Set as Main Project est sélectionnée puisqu'il doit s'agir de notre nouveau projet par défaut.

Accepter les choix par défaut dans l'écran Platform et choisir Finish.

La nouvelle application ConvertisseurDevises apparaît dans la fenêtre des applications.

Création de la MIDlet ConvertisseurMIDlet.java

Choisir File > New File. Dans Categories, choisir MIDP. Dans File Types, choisir MIDlet et appuyer sur Next.

Dans l'écran Name and Location page, saisir Convertisseur de devises en guise de nom de MIDlet, ConvertisseurMIDlet pour le nom de la classe MIDP (MIDP Class Name) et monconvertisseur pour le nom de paquetage.

Code de la MIDlet

Il existe deux moyens d'écrire le code de la MIDlet: soit en saisissant directement le code dans l'éditeur de source, soit en utilisant les fonctions add method, add field, add constructor, add initializer, add classe et add interface de l'EDI. Habituellement le meilleur moyen est d'utiliser l'EDI pour rajouter de nouveaux attributs et de nouvelles méthodes dans une classe (ou de modifier ceux qui existent), puis d'utiliser l'éditeur de source pour procéder à des réglages plus fins.



la procédure qui suit vous présente comment utiliser l'outil et son éditeur de source pour saisir ou modifier du code source. Ceci-dit, vous pouvez également reprendre le code qui se trouve dans le projet initialement exécuté (et traduire ce qui doit l'être en français avec les capacité de refactoring de NetBeans par exemple!) pour gagner du temps.

Code de la MIDlet ConvertisseurMIDlet.java    

Dans l'éditeur de source, rajouter les instructions d'import suivantes au fichier ConvertisseurMIDlet.java (double-cliquer sur le nœud correspondant pour faire apparaître le code source):

import java.io.*;

import javax.microedition.rms.*;

Dans l'onglet Projects, ouvrir le nœud ConvertisseurMIDlet et utiliser un click-droit sur le nom de la classe pour choisir Add > Field.

Cette étape utilise la fenêtre Add New Field pour rajouter l'attribut storedDataStr à la MIDlet. La chaîne de caractères storedDataStr contient le nom de l'enregistrement RMS.

Pour renseigner la fenêtre Add New Field:

Saisir le nom du nouvel attribut storedDataStr et sélectionner son type String dans le menu déroulant.

Pour le niveau d'accès, choisir le type private pour cet attribut dans le menu déroulant Access.

Vérifier que le modificateur d'accès static soit sélectionné pour cet attribut.

Positionner la valeur initialle de storedDataStr à "ValeurAConvertir" (avec les guillemets).

Cliquer sur OK pour fermer la boîte de dialogue.

L'attribut est alors rajouté au code et il apparaît dans la fenêtre de l'éditeur de code.

Rajouter les attributs suivants dans la classe ConvertisseurMIDlet.java en utilisant l'éditeur de source.

Vous pouvez soit utiliser la boîte de dialogue Add Field, soit copier le texte de cette page, soit recopier le code issu de l'application Currency Converter. Attention cependant à ne pas changer le nom de paquetage monconvertisseur.

public class ConvertisseurMIDlet extends MIDlet {

    private static String storedDataStr = "ValeurAConvertir";

    public String[] devises = new String[] { "US $", "Yen \u00a5", "Euro \u20ac" };

    public boolean[] selection = new boolean[] { true, true, true, true };

    public long[][] taux = {{ 1000000, 117580000, 911079 },

                            { 8504, 1000000, 7749 },

                            { 1097600, 129056000, 1000000 }};

    private RecordStore storedData;

Rajouter le code suivant dans la méthode startApp(). Cette méthode  est appellée au démarrage de l'application. Elle charge les données (devises, devises sélectionnées et taux de change) depuis la zone de stockage et affiche le formulaire de conversion. Voici à quoi doit ressembler la méthode:

public void startApp() {

    try {

        storedData = RecordStore.openRecordStore(storedDataStr, true);

        if (storedData.getNumRecords() > 0) {

            DataInputStream in = new DataInputStream(new ByteArrayInputStream(storedData.getRecord(1)));

            try {

                int size = in.readInt();

                devises = new String[size];

                selection = new boolean[size];

                taux = new long[size][];

                for (int i=0; i<size; i++) {

                     devises[i] = in.readUTF();

                     selection[i] = in.readBoolean();

                     taux[i] = new long[size];

                     for (int j=0; j<size; j++) {

                         taux[i][j] = in.readLong();

                     }

                }

                in.close();

            } catch (IOException ioe) {

            }

         }

     } catch (RecordStoreException e) {

     }

     notifieModifParametres();

  }

La méthode destroyApp() est appelée lorsque l'application se termine ou lorsqu'elle est détruite. Voici le code à rajouter à la méthode destroyApp():

public void destroyApp(boolean unconditional) {

    try {

         ByteArrayOutputStream bytes = new ByteArrayOutputStream();

         DataOutputStream out = new DataOutputStream(bytes);

         try {

             out.writeInt(devises.length);

             for (int i=0; i<devises.length; i++) {

                 out.writeUTF(devises[i]);

                 out.writeBoolean(selection[i]);

                 for (int j=0; j<devises.length; j++) {

                     out.writeLong(taux[i][j]);

                 }

             }

             out.close();

             if (storedData.getNumRecords() > 0)

                 storedData.setRecord(1, bytes.toByteArray(), 0, bytes.size());

             else

                 storedData.addRecord(bytes.toByteArray(), 0, bytes.size());

         } catch (IOException ioe) {

             ioe.printStackTrace();

         }

     } catch (RecordStoreException e) {

         e.printStackTrace();

     }

     notifyDestroyed();

  }

Rajouter ensuite les trois méthodes suivantes:

afficheParametres()

Cette méthode créé et affiche la liste SelectionDevise.

  public void afficheParametres() {

     Display.getDisplay(this).setCurrent(new SelectionDevise(this));

  }

notifieModifParametres()

Cette méthode affiche un nouveau formulaire Convertisseur une fois les paramètres modifiés.

 public void notifieModifParametres() {

    Display.getDisplay(this).setCurrent(new Convertisseur(this));

 }

conversion()

Cette méthode effectue la conversion de devises. La valeur en entrée frval est multipliée par le taux d'échange stocké dans la tables des taux et divisée par 1 000 000. Les valeurs fridx et toidx représentent les indices source et cible du taux de conversion à appliquer.

 public long conversion(long frval, int fridx, int toidx) {

        return (frval * taux[fridx][toidx]) / 1000000;

 }

  1. Sauvegarder ConvertisseurMIDlet en sélectionnant File > Save.

Création d'un formulaire MIDP

Maintenant que nous avons terminé de rédiger le code de la MIDlet, nous allons créer l'interface graphique de l'application. Un formulaire (form) est une classe Java susceptible de contenir un nombre quelconque d'éléments: images champ en lecture seule, champ de saisie de texte, groupes de sélection et autres éléments spécifiques. Le formulaire créé ici doit proposer une zone de texte pour chaque devise sélectionnée et spécifier la méthode itemStateChanged()pour surveiller et convertir à la volée une valeur en cours de saisie.

Code du formulaire MIDP  Convertisseur.java

Dans la fenêtre des projets, utilisez un click droit sur le paquetage monconvertisseur pour choisir File > New File/Folder.

L'assistant New File apparaît.

Dans Categories, ouvrir les nœuds MIDP et MIDP Forms. Choisir MIDP Form dans File Types et cliquer sur Next.

Dans l'écran Name and Location saisir Convertisseur en guise de nom de classe et choisir Finish.

Un formulaire MIDP est alors créé et rajouté au paquetage monconvertisseur.

Dans l'éditeur de source, rajouter les champs suivants sous la déclaration public class Convertisseur :

private ConvertisseurMIDlet midlet;

private int[] translate;          

Rajouter le code suivant pour compléter le constructeur afin qu'il contienne exactement le code qui suit :



public Convertisseur(ConvertisseurMIDlet midlet) {

        super("Convertisseur Devises");

        this.midlet = midlet;

        this.translate = new int[midlet.devises.length];

        int courant = 0;

        for (int i=0; i<translate.length; i++) {

            if (midlet.selection[i]) {

                translate[courant++] = i;

                append(new TextField(midlet.devises[i], "", 12, TextField.NUMERIC));

            }

        }

        try {

            // Mise en place de l'écoute d'événements pour le formulaire

            setCommandListener(this);

            // Mise en place de l'écoute des événements de changement d'état

            setItemStateListener(this);

            // Rajout de la commande Devises

            addCommand(new Command("Devises", Command.OK, 1));

            // Rajout de la commande de Sortie

            addCommand(new Command("Sortie", Command.EXIT, 1));

        } catch(Exception e) {

            e.printStackTrace();

        }

}

Rajouter le code suivant pour compléter la méthode commandAction() :

 public void commandAction(Command command, Displayable displayable) {

    if (command.getCommandType() == Command.EXIT) {

        midlet.destroyApp(true);

    } else if (command.getCommandType() == Command.OK) {

        midlet.afficheParametres();

    }

 }

Rajouter le code suivant pour compléter la méthode itemStateChanged() :

public void itemStateChanged(Item item) {

   try {

       long valeur = Long.parseLong(((TextField)item).getString());

       int from = 0;

       while (get(from) != item) from++;

       from = translate[from];

       for (int i=0; i<size(); i++) {

           int to = translate[i];

           if (from != to) {

              ((TextField)get(i)).setString(String.valueOf(midlet.convert(valeur, from, to)));

           }

        }

    } catch (NumberFormatException nfe) {

        for (int i=0; i<size(); i++) {

            ((TextField)get(i)).setString("");

        }

    }

}

Ceci termine la rédaction du formulaire Convertisseur.java.

Création d'une liste MIDP

Le dernier morceau nécessaire pour compléter l'application Convertisseur de devises est la liste définie dans le fichier SelectionDevise.java. Celui-ci défini la liste des devises qui doivent être proposées à l'affichage.

Code de la liste MIDP SelectionDevise.java

Dans la fenêtre des projets, utilisez un click droit sur le paquetage monconvertisseur pour choisir File > New File/Folder.

L'assistant New File wizard apparaît.

Dans Categories, ouvrir les nœuds MIDP et MIDP Forms. Choisir MIDP List dans File Types et cliquer sur Next.

Dans l'écran Name and Location saisir SelectionDevise en guise de nom de classe et choisir Finish.

Une liste MIDP est alors créée et rajoutée au paquetage monconvertisseur.

Insérer le champ suivant après la ligne public class SelectionDevise extends List implements CommandListener {:

private ConvertisseurMIDlet midlet;

Rajouter le code suivant pour compléter le constructeur afin qu'il contienne exactement le code qui suit :

   public SelectionDevise(ConvertisseurMIDlet midlet) {

        super("Selection Devise", List.MULTIPLE, midlet.devises, null);

        this.midlet = midlet;

        setSelectedFlags(midlet.selection);

        try {

            // Mise en place de l'écoute d'événements sur la liste

            setCommandListener(this);

            // Rajout de la commande de validation

            addCommand(new Command("Valider", Command.OK, 1));

        } catch(Exception e) {

            e.printStackTrace();

        }

    }

Rajouter le code suivant pour compléter la méthode commandAction():

    public void commandAction(Command command, Displayable displayable) {

        if (command.getCommandType() == Command.OK) {

            getSelectedFlags(midlet.selection);

            midlet.notifieModifParametres();

        }

    }

Ceci complète la liste du fichier

SelectionDevise.java.

Tester son application

Maintenant que nous avons créé notre application, il est possible de la tester dans différents émulateurs de périphériques comme cela a été fait avec le projet Conversion de devises du début du didacticiel. Cependant, plutôt que de modifier l'émulateur de périphérique dans la configuration par défaut, nous allons créer une deuxième configuration de projet pour l'émulateur QwertyDevice.

Création d'une nouvelle configuration de projet

Choisir File > "ConvertisseurDevises" Properties.

Appuyer sur le bouton "Manage Configurations..." pour ouvrir le gestionnaire de configurations du projet.

Appuyer sur le bouton "Add".

Saisir le nom de la nouvelle configuration QwertyDevice et appuyer sur "Ok".

Choisir "Close" pour fermer le gestionnaire de configurations.

Nous avons désormais une deuxième configuration QwertyDevice à disposition dont les propriétés sont exactement celles de DefaultConfiguration.

Modification de la propriété Device

Toujours dans la fenêtre des propriétés du projet, choisir "Platform" dans l'arbre dans la partie gauche de la fenêtre.

Si "QwertyDevice" n'est pas la configuration active du projet, la choisir dans le menu déroulant qui contient la liste des différentes configurations ("Project Configuration").

Afin de pouvoir définir de nouvelles propriétés pour cette configuration, il est nécessaire de s'assuré que le bouton "Use Values from DefaultConfiguration" n'est pas sélectionné.

Choisir QwertyDevice dans le menu déroulant des périphériques ("Device"). Choisir OK.

Exécution de l'application dans les deux configurations              

Sélectionner la configuration DefaultConfiguration dans la liste des configurations.

Sélectionner le menu Run > Run Main Project (touche F6).

Le Convertisseur de devises apparaît dans l'émulateur DefaultColorPhone.

Choisir QwertyDevice comme configuration par défaut dans le menu déroulant.

Sélectionner le menu Run > Run Main Project (touche F6).

Le Convertisseur de devises apparaît cette fois-ci dans l'émulateur QwertyDevice.

Il est désormais possible de tester et comparer en parallèle le comportement et la performance de l'application.

 



252