611892 Creez Des Applications Pour Blackberry

  • View
    216

  • Download
    0

Embed Size (px)

DESCRIPTION

CREER APPLICATION POUR blackberry

Citation preview

  • Crez desapplications pour

    BlackBerryPar Guillaume.

    www.openclassrooms.com

    Licence Creative Commons 6 2.0Dernire mise jour le 11/02/2013

  • Sommaire 2Sommaire ........................................................................................................................................... 3Partager .............................................................................................................................................. 5 Crez des applications pour BlackBerry ............................................................................................ 6Partie 1 : Les bases du dveloppement BlackBerry ............................................................................ 6Un petit mot sur BlackBerry .............................................................................................................................................. 6Introduction .................................................................................................................................................................................................................. 6Les applications .......................................................................................................................................................................................................... 7Le dveloppement ....................................................................................................................................................................................................... 9Installation des outils de dveloppement .......................................................................................................................... 9Installer le Java SE JDK .............................................................................................................................................................................................. 9Tlchargement du JDK ............................................................................................................................................................................................. 9Installation du JDK ......................................................................................................................................................................................................

    11Eclipse et son plugin pour BlackBerry ....................................................................................................................................................................... 12Tlchargement du plugin ......................................................................................................................................................................................... 12Installation sous Windows ......................................................................................................................................................................................... 14L'interface d'Eclipse ...................................................................................................................................................................................................

    16Votre premire application .............................................................................................................................................. 17Cration du projet ...................................................................................................................................................................................................... 19Analyse du contenu ................................................................................................................................................................................................... 20La classe MyApp ....................................................................................................................................................................................................... 22La classe MyScreen .................................................................................................................................................................................................. 23Lancement de l'application ........................................................................................................................................................................................

    27Partie 2 : Les interfaces graphiques .................................................................................................. 27La constitution des vues .................................................................................................................................................. 27Introduction ................................................................................................................................................................................................................ 28Les classes fondamentales ....................................................................................................................................................................................... 28Les Fields .................................................................................................................................................................................................................. 28Les Managers ............................................................................................................................................................................................................ 29Les Screens .............................................................................................................................................................................................................. 29Les diffrentes techniques ........................................................................................................................................................................................ 29Utilisation de composants prdfinis ......................................................................................................................................................................... 30Les vues personnalises ...........................................................................................................................................................................................

    31Les composants de base ................................................................................................................................................ 32Les champs de texte ................................................................................................................................................................................................. 32Introduction ................................................................................................................................................................................................................ 32Afficher du texte ........................................................................................................................................................................................................ 35Les autres champs de texte ...................................................................................................................................................................................... 37Les boutons ............................................................................................................................................................................................................... 37Les boutons classiques ............................................................................................................................................................................................. 39Les boutons droulants ............................................................................................................................................................................................. 40Les images ................................................................................................................................................................................................................ 40Prparation des images ............................................................................................................................................................................................ 41Chargement des images ........................................................................................................................................................................................... 42Affichage d'images ....................................................................................................................................................................................................

    43Un peu d'ordre avec les conteneurs ............................................................................................................................... 44Le principe des conteneurs ....................................................................................................................................................................................... 44Introduction ................................................................................................................................................................................................................ 44Le principe de hirarchie ........................................................................................................................................................................................... 45Les diffrents conteneurs .......................................................................................................................................................................................... 45Les conteneurs .......................................................................................................................................................................................................... 48Quelques proprits .................................................................................................................................................................................................. 50Un album photo ......................................................................................................................................................................................................... 51Version avec boutons ................................................................................................................................................................................................ 54Version avec miniatures ............................................................................................................................................................................................

    57La gestion des vnements ............................................................................................................................................ 58Les vnements de boutons ..................................................................................................................................................................................... 58La thorie .................................................................................................................................................................................................................. 58La gestion des boutons de l'album photo .................................................................................................................................................................. 60Les vnements tactiles ...................................................................................................................................................................................... 60La thorie .................................................................................................................................................................................................................. 61La gestion des miniatures de l'album photo .............................................................................................................................................................. 63Un peu plus loin... .....................................................................................................................................................................................................

    65Les vues personnalises ................................................................................................................................................. 65La structure de base .................................................................................................................................................................................................. 68Insrer des contours .................................................................................................................................................................................................. 68Les bases .................................................................................................................................................................................................................. 68Les formes elliptiques ............................................................................................................................................................................................... 69Les rectangles ........................................................................................................................................................................................................... 70Quelques plus ........................................................................................................................................................................................................... 70Insrer des remplissages .......................................................................................................................................................................................... 70Les essentiels ........................................................................................................................................................................................................... 72Un peu de couleur ..................................................................................................................................................................................................... 72Les images ................................................................................................................................................................................................................

    2/191

    www.openclassrooms.com

  • 74TP : un taquin .................................................................................................................................................................. 75Le cahier des charges ............................................................................................................................................................................................... 75Spcifications du projet ............................................................................................................................................................................................. 75Avant de commencer ................................................................................................................................................................................................ 76La correction .............................................................................................................................................................................................................. 76La classe MonApp ..................................................................................................................................................................................................... 77La classe MonDessin ................................................................................................................................................................................................ 78La classe Vignette ..................................................................................................................................................................................................... 79La classe Partie ......................................................................................................................................................................................................... 82La classe Mouvement ............................................................................................................................................................................................... 82Les explications ......................................................................................................................................................................................................... 83La structure du jeu ..................................................................................................................................................................................................... 87Le traage l'cran ...................................................................................................................................................................................................

    89Partie 3 : Les techniques avances .................................................................................................. 90Travailler avec plusieurs vues ......................................................................................................................................... 90Prparation des vues ................................................................................................................................................................................................ 90La page d'accueil ...................................................................................................................................................................................................... 92La page de description .............................................................................................................................................................................................. 93Mise jour d'un cran ............................................................................................................................................................................................... 93Le principe ................................................................................................................................................................................................................. 95Le code complet ........................................................................................................................................................................................................ 96Travailler par hritage ............................................................................................................................................................................................... 96Utiliser rellement plusieurs vues ............................................................................................................................................................................. 97Nos deux vues ........................................................................................................................................................................................................... 98Afficher les vues ........................................................................................................................................................................................................

    100L'internationalisation ...................................................................................................................................................... 101Crer des ressources .............................................................................................................................................................................................. 101Prparation du projet ............................................................................................................................................................................................... 103Implmentation des ressources .............................................................................................................................................................................. 103Utiliser les ressources ............................................................................................................................................................................................. 103Travailler les ressources ......................................................................................................................................................................................... 105Les cls l'intrieur du code ................................................................................................................................................................................... 106Une application multilingue ..................................................................................................................................................................................... 106Prparation des ressources .................................................................................................................................................................................... 107Les sources ............................................................................................................................................................................................................. 109Rsultat final ...........................................................................................................................................................................................................

    109Le stockage de donnes ............................................................................................................................................... 110Grer des donnes .................................................................................................................................................................................................. 110Introduction au stockage ......................................................................................................................................................................................... 110L'interface FileConnection ....................................................................................................................................................................................... 112Cration de donnes ............................................................................................................................................................................................... 113Accder physiquement aux donnes ................................................................................................................................................................ 113Stockage l'intrieur du smartphone ...................................................................................................................................................................... 116Stockage sur une carte externe ............................................................................................................................................................................... 118Un fichier de test ...................................................................................................................................................................................................... 119Lire et crire dans un fichier .................................................................................................................................................................................... 119Un systme binaire .................................................................................................................................................................................................. 120criture dans un fichier ........................................................................................................................................................................................... 122Lecture d'un fichier ..................................................................................................................................................................................................

    124TP : un diteur de texte ................................................................................................................................................. 125Le cahier des charges ............................................................................................................................................................................................. 125Spcification du projet ............................................................................................................................................................................................. 126Avant de commencer .............................................................................................................................................................................................. 126La correction ............................................................................................................................................................................................................ 126La classe MonApp ................................................................................................................................................................................................... 127La classe ConnexionFichier .................................................................................................................................................................................... 128La classe Editeur ..................................................................................................................................................................................................... 130Les explications ....................................................................................................................................................................................................... 130Les champs de texte ............................................................................................................................................................................................... 131Les diffrents boutons ............................................................................................................................................................................................. 133La mise en page finale ............................................................................................................................................................................................

    134Le multimdia ................................................................................................................................................................ 135Transfrer des fichiers ............................................................................................................................................................................................. 135Crer un dossier de partage .................................................................................................................................................................................... 136Transfrer des fichiers multimdias ........................................................................................................................................................................ 137Jouer de l'audio ....................................................................................................................................................................................................... 137Lire un fichier audio ................................................................................................................................................................................................. 140Insrer du son l'application ................................................................................................................................................................................... 143Lire une vido .......................................................................................................................................................................................................... 143Chargement du fichier ............................................................................................................................................................................................. 144Une classe prte l'emploi .....................................................................................................................................................................................

    147L'acclromtre ............................................................................................................................................................. 147L'orientation grossire ....................................................................................................................................................................................... 147Introduction .............................................................................................................................................................................................................. 148Cration de la classe Orientation ............................................................................................................................................................................ 150Visualisation de l'application ................................................................................................................................................................................... 151Grer le temps ......................................................................................................................................................................................................... 151Prsentation ............................................................................................................................................................................................................ 152Cration d'un chronomtre ...................................................................................................................................................................................... 154L'orientation prcise .......................................................................................................................................................................................... 154Rcuprer l'orientation ............................................................................................................................................................................................

    Sommaire 3/191

    www.openclassrooms.com

  • 156Un niveau ................................................................................................................................................................................................................ 159Les pages HTML ........................................................................................................................................................... 160Afficher des pages HTML ........................................................................................................................................................................................ 160Crer du texte HTML ............................................................................................................................................................................................... 161Charger une page locale ......................................................................................................................................................................................... 164Installer le BlackBerry MDS Simulator .................................................................................................................................................................... 165Mise en place du JCE ............................................................................................................................................................................................. 165Le BlackBerry MDS Simulator ................................................................................................................................................................................. 167Charger des pages web .......................................................................................................................................................................................... 167Charger une page web ............................................................................................................................................................................................ 168Modifier les configurations .......................................................................................................................................................................................

    169Partie 4 : Les finitions ...................................................................................................................... 170Tester son application en profondeur ............................................................................................................................ 170Prparer son application ......................................................................................................................................................................................... 170Tester son application sur divers appareils ............................................................................................................................................................. 170Quelques actions pralables ................................................................................................................................................................................... 171Utiliser de nouveaux simulateurs ............................................................................................................................................................................ 171Tlcharger et installer un nouveau simulateur ...................................................................................................................................................... 172Configurer Eclipse ................................................................................................................................................................................................... 173Lancer l'application .................................................................................................................................................................................................. 174Utiliser un appareil physique ................................................................................................................................................................................... 174Installer le Desktop Manager ................................................................................................................................................................................... 175Premier dmarrage du logiciel ................................................................................................................................................................................ 177Installation d'une application ...................................................................................................................................................................................

    180Dployer et distribuer .................................................................................................................................................... 181Installer des cls de signature ................................................................................................................................................................................. 181Faire une demande de cls ..................................................................................................................................................................................... 183Installer les cls ....................................................................................................................................................................................................... 185Finaliser son application .......................................................................................................................................................................................... 185Remplir le BlackBerry Application Descriptor .......................................................................................................................................................... 186Signer son application ............................................................................................................................................................................................. 188La distribution .......................................................................................................................................................................................................... 188Proposer une application sur l'App World ............................................................................................................................................................... 189Utiliser BlackBerry Enterprise Server ...................................................................................................................................................................... 189D'autres moyens de distribution ..............................................................................................................................................................................

    Partager 4/191

    www.openclassrooms.com

  • Crez des applications pour BlackBerry

    Par Guillaume.

    Mise jour : 11/02/2013Difficult : Intermdiaire Dure d'tude : 3 mois

    1 visites depuis 7 jours, class 35/807Vous avez envie d'apprendre dvelopper des applications pour BlackBerry ?

    Mais vous ne trouvez aucun cours qui vous explique comment procder ?

    Bienvenue dans un cours qui va justement vous apprendre dvelopper pas pas des applications pour BlackBerry OS ! Vous remarquerez qu'il est relativement facile de se procurer des ouvrages et tutoriels qui traitent du dveloppementd'applications pour iPhone ou smartphones Android. En revanche sous BlackBerry OS, il est beaucoup plus difficile de trouverdes cours la fois complets et progressifs. Dans ce cours, nous essaierons donc de progresser petit petit pour vous permettrede raliser les applications de vos rves.

    qui ce cours s'adresse-t-il ?

    Ce cours s'adresse aux initis en Java, vous ne pourrez pas suivre ce cours si vous tes dbutant en programmation.Aucune connaissance supplmentaire n'est exige : vous pouvez tout fait raliser des applications sans connatre quoique ce soit sur les requtes SQL par exemple, tout dpend du type d'applications que vous souhaitez dvelopper.Enfin, sachez qu'il ne vous est pas demand de possder un smartphone BlackBerry pour suivre ce cours. En effet, il n'estpas indispensable de possder un tel appareil pour pouvoir dvelopper, tester et publier ses applications.

    Tout au long du tutoriel, nous essaierons de mettre en pratique les diverses notions qui auront t mises en vidence. Nousessaierons au cours de ces travaux pratiques de raliser des applications intressantes et varies. Je vous laisse dcouvrir legenre d'applications que nous dvelopperons dans ce cours :

    Je vous invite donc sans plus attendre, vous lancer dans cet apprentissage !

    Partager 5/191

    www.openclassrooms.com

  • Partie 1 : Les bases du dveloppement BlackBerry

    Un petit mot sur BlackBerryDans ce chapitre, nous ferons une brve introduction l'univers BlackBerry. Nous parlerons des smartphones du mme nomainsi que de la compagnie qui en est l'origine. Nous verrons galement les diffrents moyens de dveloppement d'applicationspour leur systme d'exploitation BlackBerry OS . Ds le prochain chapitre, nous mettrons en place les outils ncessaires audveloppement de ces applications.Je rappelle galement que la lecture de ce cours suppose que vous avez dj quelques connaissances en programmation. C'estpourquoi nous ne reviendrons pas sur des notions de base de l'informatique telles que la dfinition d'un systme d'exploitationou encore sur la signification d'un langage de programmation.

    Introduction

    BlackBerry est la base une ligne de smartphones dveloppe par la socitcanadienne Research In Motion (RIM). Cette compagnie a t fonde en 1984par Mike Lazaridis. Son sige social est Waterloo en Ontario mais la firmepossde des bureaux en Europe, en Asie et en Amrique du Nord. Elle est l'heure actuelle compose de plus de 13 000 collaborateurs pour un chiffred'affaires d'environ 16 milliards de $ en 2011. C'est en 1999 qu'elle a commercialis

    le premier BlackBerry. Pour plus d'informations, consultez leur site web l'adresse www.rim.com.

    Les smartphones BlackBerry sont rputs pour leur service de messages et courriels en temps rel. Ces tlphones utilisent lesystme d'exploitation propritaire BlackBerry OS . Il existe de nos jours, prs d'une vingtaine de modles diffrents desmartphones BlackBerry, et environ 50 millions d'utilisateurs travers le monde.Depuis peu, la compagnie canadienne a dvelopp sa premire tablette nomme BlackBerry PlayBook . Nanmoins, cettetablette ne fonctionne pas sur le mme systme d'exploitation que les smartphones. Celui-ci est nomm BlackBerry Tablet OS .

    Les applicationsDans ce cours nous apprendrons pas pas, raliser des applications fonctionnant sous BlackBerry OS. Mais avant de selancer dans plus de dtails sur la manire de les dvelopper, nous verrons un peu ce qu'il est possible de raliser.

    Une application c'est quoi ?

    Pour apprhender la notion d'applications, nous allons faire une analogie avec les ordinateurs. Windows 7, par exemple, est unsystme d'exploitation. Celui-ci possde beaucoup de fonctionnalits intgres, mais il n'est pas rare qu'on ait besoin d'encoreplus. Pour cela, nous installons des programmes supplmentaires pour augmenter les fonctionnalits de notre ordinateur. Voici une liste de programmes ou logiciels :

    Word : logiciel de traitement de textePhotoshop : logiciel de retouche d'imagesBlender : logiciel d'infographie 3D

    Crez des applications pour BlackBerry 6/191

    www.openclassrooms.com

  • Eclipse : IDE pour crire du code

    Le systme d'exploitation BlackBerry fonctionne sur le mme principe. Cependant ici on va parler d'applications. On retrouverades applications diverses qui servent un tas de trucs. Voici une liste d'applications :

    Navigateur Web : application pour naviguer sur InternetCalculatrice : la calculatrice intgre BlackBerry OS est aussi une applicationMonopoly : le clbre jeu de socit disponible sur BlackBerry App World

    Quelques applications sont prsentes dans le tableau ci-dessous :

    Navigateur Web Monopoly Fruit Ninja

    Les outils mis disposition par RIM nous permettent de crer des applications de toutes sortes. Nous pourrons y intgrer debelles interfaces en utilisant des composants proposs (boutons, menus, etc.), mais galement des interfaces graphiquesentirement personnalises avec des images ou encore utiliser la 3D. Nous aurons aussi tous les outils ncessaires pour parexemple crire des fichiers dans le terminal ou encore avoir accs aux services de localisation.

    Avoir de belles interfaces graphiques est toujours agrable dans une application. La ralisation de telles interfacesdemande du travail !Cependant, beaucoup d'entre vous souhaiteront raliser des jeux aux graphismes sensationnels. Nous tudierons doncun maximum d'outils permettant la cration d'interfaces complexes, qui rpondront vos besoins.

    La ralisation d'interfaces graphiques peut ncessiter l'utilisation de logiciels de graphisme tels que Photoshop ouencore Blender, qui ne sont pas l'objet de ce cours. Vous trouverez sur le Site du Zro des tutoriels correspondant ceslogiciels.

    Le dveloppementLa compagnie Research In Motion propose tout un tas d'outils pour raliser vos applications sur BlackBerry OS et BlackBerryTablet OS. Le dveloppement d'applications peut tre ralis dans diffrents langages de programmation. Voici tout ce que lasocit nous propose :

    Voici les possibilits de dveloppement :Adobe AIR : Il est possible de raliser des applications l'aide des outils de dveloppement Adobe Flex, AIR et Flash. Sivous tes intresss, Programmez en Actionscript 3 grce au tutoriel du Site du Zro.C/C++ : Grce au dveloppement en C/C++, il est possible de crer des applications de hautes performances et d'intgrerdes bibliothques open source telles que Qt ou OpenAL.Android : BlackBerry Tablet OS intgre une machine virtuelle qui permet d'excuter des applications Android.HTML5 : Grce au BlackBerry WebWorks, vous pouvez dvelopper des applications compatibles sur smartphones et

    Partie 1 : Les bases du dveloppement BlackBerry 7/191

    www.openclassrooms.com

  • tablettes.Java : En utilisant un plugin pour le clbre IDE nomm Eclipse, vous pourrez raliser des applications en Java.

    En ce qui concerne BlackBerry OS, le dveloppement peut tre ralis uniquement en Java ou en HTML5. Dans notre cas, nousprogrammerons nos applications en Java tout au long du cours. Ds le prochain chapitre, nous commencerons nous quiperdes outils ncessaires au dveloppement BlackBerry en Java.

    Dans ce cours, nous raliserons des applications pour BlackBerry en Java. Pour suivre ce cours, il est donc requis deconnatre les bases du Java et de la Programmation Oriente Objet. Pour cela, veuillez suivre au moins les parties I et IIdu cours sur Java propos par le Site du Zro.

    BlackBerry est l'origine une ligne de smartphones dveloppe par la socit canadienne Research In Motion.BlackBerry OS est le systme d'exploitation prsent actuellement sur les smartphones.Une application d'un smartphone est l'quivalent d'un logiciel pour un ordinateur.Dans ce cours, nous nous intresserons au dveloppement d'applications en Java.

    Partie 1 : Les bases du dveloppement BlackBerry 8/191

    www.openclassrooms.com

  • Installation des outils de dveloppementPour raliser des applications pour BlackBerry, nous aurons besoin de diffrents outils. L'Environnement de DveloppementIntgr (ou IDE) conseill pour le dveloppement d'application BlackBerry en Java est Eclipse. Cet environnement dedveloppement est libre, gratuit et multi-plateforme. Nous installerons donc le Plugin Java BlackBerry pour Eclipse.Dans ce chapitre, nous dtaillerons toutes les tapes d'installation pas pas pour ne perdre personne. Une fois termin, nousaurons alors tout ce qu'il faut pour crire nos applications, les compiler et les tester travers un simulateur. Pour ceux qui neconnatraient pas l'environnement de dveloppement, nous prsenterons rapidement son interface.Les outils de dveloppement Java BlackBerry fournis par RIM sont malheureusement disponibles uniquement sous Windows etMac.

    Installer le Java SE JDKSi vous possdez dj Java SE JDK 6 update 14 ou une version ultrieure sur votre machine, vous pouvez passerdirectement au tlchargement des outils BlackBerry et de l'IDE Eclipse au paragraphe suivant.

    Tlchargement du JDK

    Les programmes crits en Java ont la particularit d'tre portables, c'est--dire qu'ils peuvent fonctionner sur diffrents systmesd'exploitation. Ceci vient du fait que les programmes Java sont compils en Byte Code et vont s'excuter sur une machinevirtuelle. Cette machine virtuelle est appele JRE (ou Java Runtime Environment). Nous en aurons besoin car Eclipse est lui-mme principalement crit en Java. tant donn que les applications BlackBerry sont crites en Java, nous aurons aussi besoindu JDK (ou Java Development Kit) qui intgre les outils pour dvelopper et compiler du Java. Notez que le JRE est inclus dans leJDK.

    Pour tlcharger la dernire version du JDK, rendez-vous sur le site d'Oracle la page suivante. Cliquez alors sur le boutonDownload du JDK pour passer l'tape suivante.

    Avant de lancer le tlchargement vous devrez accepter la licence en cliquant sur la case cocherAccept License Agreement, et spcifier votre systme d'exploitation dans la liste propose. Enfin, slectionnezl'emplacement et enregistrez le fichier d'installation sur votre disque dur.

    Installation du JDK

    Pour lancer l'installation, double-cliquez sur le fichier d'installation tlcharg prcdemment, puis suivez les tapes ci-dessous.

    Partie 1 : Les bases du dveloppement BlackBerry 9/191

    www.openclassrooms.com

  • Pour ma part, j'ai cr un dossier BlackBerry, qui contiendra toutes les installations que nous allons raliser. Je vous conseillevivement de faire la mme chose pour viter d'en semer de partout.

    tape 1 sur 4 : Cliquez sur

    Next.

    tape 2 sur 4 : Spcifiez le

    dossier d'installation et cliquez sur Next.

    Partie 1 : Les bases du dveloppement BlackBerry 10/191

    www.openclassrooms.com

  • tape 3 sur 4 : Patientez

    pendant la dure d'installation.

    tape 4 sur 4 : Terminez

    l'installation en cliquant sur Continue.

    Le JDK est maintenant install. Nous allons pouvoir installer notre environnement de dveloppement, ainsi que le plugin JavaBlackBerry.

    Eclipse et son plugin pour BlackBerryEclipse est un IDE qui a t dvelopp pour faciliter l'ajout de plugins. Il est la base configur pour crire des programmes enJava, mais il est possible de lui ajouter des modules d'extension pour apporter de nouvelles fonctionnalits au logiciel. Il fautalors tlcharger individuellement les plugins dsirs et les installer.Le dveloppement d'applications BlackBerry sous Eclipse IDE ncessite l'ajout d'un plugin. Cependant, Research In Motionpropose un kit d'installation qui intgre dj l'IDE, le plugin ainsi que toutes les bibliothques de classes. Grce lui, une seule

    Partie 1 : Les bases du dveloppement BlackBerry 11/191

    www.openclassrooms.com

  • installation est suffisante pour avoir un IDE configur et prt l'emploi.

    Tlchargement du pluginPour tlcharger Eclipse et son plugin Java BlackBerry intgr, nous devons nous rendre sur leur site l'adressewww.blackberry.com/developers/java, puis suivre les tapes suivantes :

    tape 1 sur 2 : Dans la rubrique Development tools and

    downloads, slectionnez votre systme d'exploitation.

    tape 2 sur 2 : Cliquez sur Download.

    Une fois le tlchargement termin, vous devriez donc avoir un fichier excutable si vous tes sous Windows, ou une archiveZip si vous tes sous Mac. Dans la suite, je dtaillerai les tapes d'installation de l'IDE sous Windows. Je laisse le soin auxinitis Mac de dcompresser leur archive et de mettre en place leur IDE.

    Installation sous WindowsDouble-cliquez sur le fichier excutable pour dmarrer l'installation. Une fois celle-ci termine, nous aurons alors notreenvironnement de dveloppement Eclipse qui intgre dj le plugin Java BlackBerry. Les tapes suivre durant la procdured'installation sont dtailles ci-dessous.

    Partie 1 : Les bases du dveloppement BlackBerry 12/191

    www.openclassrooms.com

  • tapes 1

    4 sur 7 : Choisissez les diffrentes options que vous souhaitez.

    tape 5

    sur 7 : Vrifiez les informations puis cliquez sur Install.

    Partie 1 : Les bases du dveloppement BlackBerry 13/191

    www.openclassrooms.com

  • tape 6

    sur 7 : Patientez pendant l'installation...

    tape 7

    sur 7 : Cochez la case Start Eclipse Java Plug-in puis cliquez sur Done pour dmarrer Eclipse.L'interface d'Eclipse

    Nous avons maintenant tous les outils ncessaires au dveloppement d'applications BlackBerry. Ds le prochain chapitre, nous

    Partie 1 : Les bases du dveloppement BlackBerry 14/191

    www.openclassrooms.com

  • commencerons crire nos premires lignes de code. Mais avant cela, nous allons faire un petit tour d'horizon de l'interfaced'Eclipse. En effet, il se peut que certains d'entre vous n'aient pas l'habitude de programmer avec Eclipse.

    Normalement, vous devriez dj avoir ouvert Eclipse aprs l'installation, mais vous pouvez galement lancer l'environnement dedveloppement en double-cliquant sur eclipse.exe dans le dossier d'installation du logiciel.

    Nous ne ferons ici qu'un rapide tour de l'interface, nous ne verrons donc pas l'intgralit des fonctionnalits du logiciel. Mais jevous conseille grandement de fouiller dans les recoins de l'IDE.

    Voici donc ce qui apparat au lancement du logiciel :

    Dans le Workspace Launcher, il vous est demand de renseigner le dossier de destination de l'ensemble de vos projets. Sivous souhaitez conserver le mme dossier pour tous vos projets, vous pouvez cocher la caseUse this as default and do not ask again puis cliquer sur le bouton OK .

    Nous voil enfin dans notre environnement de dveloppement. Celui-ci est divis en plusieurs zones dcoupes dans la figureci-dessous.

    Partie 1 : Les bases du dveloppement BlackBerry 15/191

    www.openclassrooms.com

  • Voici une liste des fonctionnalits correspondant aux encadrs ci-dessus :Tout d'abord en haut, dans l'encadr violet, nous avons la barre de navigation. Nous y retrouvons les commandes lesplus courantes prsentes dans les diffrents menus au-dessus. Notamment, nous pouvons crer un nouveau projet,l'enregistrer, ou encore l'excuter travers un simulateur. Ces commandes sont rgulirement utilises, et possdent pourla plupart des raccourcis clavier. Vous trouverez ces raccourcis dans les menus correspondants. gauche, dans l'encadr vert, nous avons un explorateur de projet. Nous y trouverons les diffrents dossiers desprojets ainsi que leurs contenus : codes sources, images, etc.Au centre, dans l'encadr rouge, nous avons un diteur de code source. C'est ici que nous crirons nos diffrentesclasses du projet. droite, dans l'encadr orange, nous retrouverons une liste des attributs et mthodes prsents dans la classe en coursd'dition.Enfin dans l'encadr bleu, en bas, nous avons principalement la console de sortie des programmes ainsi qu'une liste deserreurs ventuelles de vos programmes.L'IDE conseill pour dvelopper des applications pour BlackBerry est Eclipse.Pour programmer en Java, vous devez disposer d'un JDK.RIM propose directement Eclipse et son plugin pour BlackBerry intgr qui comprend l'ensemble des outils dont nousaurons besoin.L'interface d'Eclipse est trs proche des diffrents IDE que vous avez dj pu utiliser.

    Partie 1 : Les bases du dveloppement BlackBerry 16/191

    www.openclassrooms.com

  • Votre premire applicationLa cration du premier projet est une tape importante dans l'apprentissage de la programmation. C'est en gnral l'occasion dese familiariser avec son environnement de dveloppement et avec les bases du langage utilis. Ce chapitre n'est pas destin raliser une application complexe, nous aurons tout le temps pour perfectionner nos applications plus tard.Dans ce chapitre, nous allons :

    Crer notre premier projet BlackBerry dans EclipseAnalyser le contenu du projet et le code source de base d'une applicationLancer notre application dans un simulateur

    Au cours de ce chapitre, il ne vous est pas demand de comprendre toutes les subtilits du code. Tout deviendra plus clair au furet mesure, la lecture des chapitres.

    Cration du projetMaintenant que nous avons un environnement de dveloppement configur, nous allons pouvoir crer notre premier projet.Nous verrons quels sont les diffrents paramtres qui le dfinissent. Puis nous dcortiquerons son contenu en termes de fichierset de code source.Lanons-nous donc dans la cration du nouveau projet. Pour cela, cliquez sur File > New puis surBlackBerry Project :

    Il est galement possible de crer un nouveau projet en cliquant sur l'icne New BlackBerry Project de la barre denavigation. Il s'agit du bouton de gauche prsent sur l'image ci-dessous.

    Pour voir quoi correspondent les boutons de la barre de navigation, il suffit de survoler les icnes avec la souris pourfaire apparatre la lgende.

    Dans le champ Project name, entrez le nom du projet : Hello World puis cliquez sur Finish :

    Partie 1 : Les bases du dveloppement BlackBerry 17/191

    www.openclassrooms.com

  • Grce cette interface, nous pouvons crer un projet de plusieurs manires. Nous allons nous attarder un peu sur les diffrentschamps. Dans Project name nous devons renseigner le nom du projet. Il ne s'agit pas forcment du nom dfinitif del'application, mais uniquement du nom du projet dans Eclipse. Dans Contents nous avons deux possibilits : crer unnouveau projet partir de rien ou importer des sources existantes. Enfin dans JRE est spcifie la version du JRE BlackBerryavec laquelle nous crerons le projet.

    Il se peut que vous deviez redmarrer Eclipse pour que celui-ci reconfigure l'espace de travail. Vous aurez alors le messagesuivant :

    Partie 1 : Les bases du dveloppement BlackBerry 18/191

    www.openclassrooms.com

  • Une fois le projet cr, vous devriez normalement le voir apparatre dans l'onglet Package Explorer avec le nom que vousavez choisi. Nous tudierons son contenu dans le paragraphe suivant, mme si celui-ci est trs proche d'un projet Eclipsequelconque. Au centre de l'IDE est ouvert le fichier XML de description de l'application. Nous reviendrons sur ce type de fichierplus tard, et nous tudierons les diffrents champs qui le composent.L'environnement de dveloppement devrait donc ressembler ceci :

    Analyse du contenuDans ce paragraphe, nous tudierons le contenu de notre projet. En premier lieu, nous allons analyser son arborescence dansl'onglet Package Explorer. Pour cela, droulez les diffrents dossiers en cliquant sur la petite flche gauche de ceux-ci.

    Partie 1 : Les bases du dveloppement BlackBerry 19/191

    www.openclassrooms.com

  • Voici donc les deux dossiers principaux que nous trouvons dans le projet :src : Il s'agit du dossier source, qui contiendra le code source crit avec diffrentes classes ranges en package. Nousavons pour l'instant deux classes nommes MyApp et MyScreen, dont nous tudierons le contenu juste aprs.res : Dans ce rpertoire, nous mettrons l'ensemble de nos ressources. Actuellement, il ne contient qu'une seuleressource, qui est une image. Il s'agit de l'icne de notre application telle qu'elle apparatra sur le smartphone.

    Si vous visualisez le fichier icon.png, vous devriez voir cette image :

    Maintenant nous allons tudier le code source de ce projet de base. Nous verrons alors le code minimal requis pour lancer uneapplication dans BlackBerry OS.

    La classe MyAppJe vous propose d'ouvrir le fichier MyApp.java dans l'diteur de code en double-cliquant dessus.

    Code : Java - MyApp.java

    package mypackage;

    import net.rim.device.api.ui.UiApplication;

    /*** This class extends the UiApplication class, providing a* graphical user interface.*/public class MyApp extends UiApplication{ /*** Entry point for application* @param args Command line arguments (not used)*/ public static void main(String[] args) { // Create a new instance of the application and make thecurrently // running thread the application's event dispatch thread. MyApp theApp = new MyApp(); theApp.enterEventDispatcher(); }

    /*** Creates a new MyApp object*/ public MyApp() {

    Partie 1 : Les bases du dveloppement BlackBerry 20/191

    www.openclassrooms.com

  • // Push a screen onto the UI stack for rendering. pushScreen(new MyScreen()); } }

    Pour comprendre ce code, nous l'analyserons ligne par ligne. Tout d'abord, nous dclarons que notre programme se situe dans lepackage mypackage.

    Code : Java

    package mypackage;

    Pour crer une interface utilisateur (ou UI), nous devons crer une classe qui hrite de la classe UiApplication. Nouspourrons ainsi afficher des choses l'cran et interagir avec l'utilisateur. Voici donc le code correspondant :

    Code : Java

    public class MyApp extends UiApplication{ ... }

    Pour pouvoir utiliser la classe UiApplication, nous devons l'importer. Celle-ci se trouve dans le packagenet.rim.device.api.ui. Pour importer cette classe, il nous faudra crire la ligne de code suivante :

    Code : Java

    import net.rim.device.api.ui.UiApplication;

    Le point d'entre de l'application est la mthode main(). l'intrieur de celle-ci, nous devrons crer une instance de notreapplication MyApp.Au lancement de l'application, un Thread (ou pile d'excution) sera lanc. Ce dernier fera appel la mthodeenterEventDispatcher() et deviendra l'event-dispatching Thread . Ce qu'il faut comprendre, c'est que nous pourronsainsi dessiner l'cran et grer les vnements. Tout ceci est peut-tre un peu vague pour l'instant, mais nous reviendrons surces notions dans la partie suivante. En attendant, utilisez la mthode main() telle qu'elle vous est propose :

    Code : Java

    public static void main(String[] args){ MyApp theApp = new MyApp(); theApp.enterEventDispatcher();}

    Enfin pour finir, nous devons crer un constructeur notre classe MyApp. Dans ce constructeur, nous allons tout simplementafficher un cran dfini par une nouvelle classe MyScreen, crite dans le fichier MyScreen.java. Voici le codecorrespondant :

    Code : Java

    public MyApp(){ pushScreen(new MyScreen());}

    Partie 1 : Les bases du dveloppement BlackBerry 21/191

    www.openclassrooms.com

  • Cependant avant de la pousser sur l'cran avec la mthode pushScreen(), l'interface devra avoir t totalement dfinie. Ilfaudra donc la dcrire entirement l'intrieur du constructeur de la classe MyScreen.

    La classe MyScreenNous allons dtailler maintenant le fichier MyScreen.java qui va nous servir dcrire notre interface affiche l'cran. Celui-ci se situe galement dans le package mypackage. Voici le code complet de cette classe :

    Code : Java - MyScreen.java

    package mypackage;

    import net.rim.device.api.ui.container.MainScreen;

    /*** A class extending the MainScreen class, which provides defaultstandard* behavior for BlackBerry GUI applications.*/public final class MyScreen extends MainScreen{ /*** Creates a new MyScreen object*/ public MyScreen() { // Set the displayed title of the screen setTitle("MyTitle"); }}

    Pour crer des interfaces, notre classe MyScreen doit hriter de la classe MainScreen. Celle-ci doit tre importe du packagenet.rim.device.api.ui.container. Voici le code correspondant :

    Code : Java

    package mypackage;

    import net.rim.device.api.ui.container.MainScreen;

    public final class MyScreen extends MainScreen{ ...}

    Comme nous l'avons dit prcdemment, l'ensemble de l'interface doit tre dfini dans le constructeur de la classe MyScreen.Cette dernire contiendra donc uniquement son constructeur que voici :

    Code : Java

    public MyScreen(){ setTitle("MyTitle");}

    Actuellement, l'application se contente uniquement d'afficher son titre : MyTitle . Nous pourrions peut-tre essayer de faireun peu mieux en ajoutant un petit texte de bienvenue. Voici donc le constructeur que je vous propose :

    Code : Java

    public MyScreen()

    Partie 1 : Les bases du dveloppement BlackBerry 22/191

    www.openclassrooms.com

  • { setTitle("Site du Zro"); add(new RichTextField("Salut les zros!"));}

    Il ne faudra pas oublier d'importer la classe RichTextField. Je vous propose donc le code complet de la classe modifie :

    Code : Java

    package mypackage;

    import net.rim.device.api.ui.component.RichTextField;import net.rim.device.api.ui.container.MainScreen;

    public final class MyScreen extends MainScreen{ public MyScreen() { setTitle("Site du Zro"); add(new RichTextField("Salut les zros!")); }}

    Lancement de l'applicationMaintenant que notre projet est prt, nous allons pouvoir le tester. Il est bien entendu possible de le faire sur un appareilphysique, cependant il n'est pas ncessaire de possder un smartphone BlackBerry pour lancer ses applications. Dans ce coursnous utiliserons un simulateur ou mulateur. Pour lancer votre application dans le simulateur BlackBerry, commencez parcliquer sur Run > Run As > BlackBerry Simulator :

    Patientez le temps que l'OS dmarre...

    Vous l'aurez srement remarqu, mais le simulateur met un certain temps dmarrer. C'est pourquoi, si vous avezplusieurs tests raliser, il peut tre prfrable de laisser le simulateur en marche. Ainsi vous ferez l'conomie du tempsde dmarrage du systme d'exploitation.

    Partie 1 : Les bases du dveloppement BlackBerry 23/191

    www.openclassrooms.com

  • Une fois dmarr, allez dans la catgorie Downloads prsente ci-dessous :

    Enfin dans Downloads, cliquez sur l'icne de votre application.

    Vous l'aurez remarqu, l'icne de votre application correspond l'image icon.png du rpertoire res prsente plus haut.Aprs avoir cliqu sur votre application dans le dossier Downloads, celle-ci devrait se lancer dans votre simulateur. Voici ceque vous devriez avoir sur l'cran :

    Partie 1 : Les bases du dveloppement BlackBerry 24/191

    www.openclassrooms.com

  • Le simulateur BlackBerry possde un certain nombre de paramtres et l'mulateur peut avoir des apparences diversessuivant la version de votre plugin BlackBerry. Nous ne dtaillerons pas la manire d'utiliser le simulateur, je pense quevous devriez tre capable de vous en sortir tout seul. Naviguez dans les diffrents menus, et vous verrez l'ensemble despossibilits du simulateur BlackBerry.

    Pour dvelopper une application, vous devez crer un nouveau projet de type BlackBerry Project.

    Partie 1 : Les bases du dveloppement BlackBerry 25/191

    www.openclassrooms.com

  • De base, un projet est dj compos de deux classes : MyApp et MyScreen.La classe de base MyApp hrite de UiApplication et permet de crer une application.Pour grer les interfaces graphiques, la classe MyScreen hrite de MainScreen.Le point d'entre pour votre code est alors l'intrieur du constructeur de la classe MyScreen.Pour tester une application nous utiliserons un simulateur grce la commandeRun > Run As > BlackBerry Simulator.L'application compile est alors place dans la catgorie Downloads du simulateur.

    Partie 1 : Les bases du dveloppement BlackBerry 26/191

    www.openclassrooms.com

  • Partie 2 : Les interfaces graphiques

    La constitution des vuesNous voici arrivs dans le premier chapitre de la partie portant sur les UI pour User Interface ou interface utilisateur.Nous allons tout au long de cette partie dcouvrir comment afficher des objets sur l'cran et ainsi pouvoir crer des applicationscorrespondant visuellement vos attentes. Pour dmarrer en douceur dans ce chapitre, nous allons dcouvrir les principes debase des interfaces utilisateur.Sans plus attendre, dmarrons cette partie passionnante !

    IntroductionComme promis nous allons dmarrer en douceur cette partie. Au cours de ce chapitre nous n'entrerons pas vraiment dans leslignes de code, mais nous verrons plutt les grands principes de cration d'interfaces graphiques.Lorsque nous crons des applications, une grosse partie du dveloppement peut tre tourne vers le graphisme. Principalementdans les jeux, vous aurez besoin de crer une interface graphique complexe que l'utilisateur aura l'cran. Suivant le typed'applications, ces interfaces seront diffrentes et pourront tre ralises de diffrentes faons.

    Pour illustrer tout ce qui vient d'tre dit, voici quelques exemples d'interfaces graphiques :

    Notez les diffrences de contenu de ces diffrentes applications. La premire est une calculatrice, vous constaterez qu'elle estprincipalement constitue d'un affichage numrique ainsi que de boutons. Cette interface graphique a t conue l'aide decomposants prdfinis, ce qui facilite la cration de telles interfaces. Nous retrouvons parmi ces composants des boutons, deschamps de texte, des listes et pleins d'autres ; nous y reviendrons !Juste ct le menu des rglages intgre galement des composants de base comme des champs de texte, des images etdiffrents types de boutons.Enfin les deux derniers sont des jeux, vous remarquerez que ces interfaces sont dessines , principalement l'aide d'images.

    Partie 1 : Les bases du dveloppement BlackBerry 27/191

    www.openclassrooms.com

  • Ainsi chaque style d'interface graphique est ralis avec une technique spcifique, que nous verrons avant la fin de ce chapitre.Les classes fondamentales

    Nous allons prsent voir les diffrentes classes la base de tous les composants graphiques. Celles-ci sont contenues dans lepackage net.rim.device.api.ui. En particulier nous verrons les trois classes prsentes ci-dessous. Tout ce que nousverrons par la suite dcoule de ces classes par hritage :

    FieldManagerScreen

    Commenons tout de suite par la premire : la classe Field.

    Les FieldsLa classe Field est la classe fondamentale de tout composant graphique d'une application. En effet tous les composantsgraphiques tels que les boutons, les champs de texte ou autres hritent de cette classe.Nous pourrions voir ceci comme une zone rectangulaire traable l'cran l'intrieur de ce que nous appelons des conteneurs.

    La classe Field est une classe abstraite, dans le sens o elle ne peut pas tre utilise directement. En gnral, il estprfrable d'utiliser les composants prdfinis qui hritent de cette classe. Toutefois, il peut tre envisageable de crerun composant personnalis en crant une nouvelle classe hritant de la classe Field.

    Comme cela vient d'tre dit, nous utiliserons donc jamais en pratique cette classe telle quelle. En revanche, ce qu'il intressant denoter c'est que tous les lments graphiques sont donc des classes filles de cette classe Field. Celles-ci hriteront donc detoutes ses proprits et mthodes.Ainsi nous pourrons par exemple utiliser les proprits FIELD_LEFT, FIELD_HCENTER ou FIELD_RIGHT pour positionnerl'objet l'cran. Bien videmment nous ne dtaillerons pas ici toutes les proprits et mthodes de cette classe. Notez cependantles mthodes getHeight() et getWidth() qui permettent de rcuprer la largeur et la hauteur de l'objet Field.

    Je pense en avoir assez dit sur cette classe, nous allons donc prsent nous intresser aux classes Manager et Screen quielles-mmes hritent de la classe Field.

    Les ManagersGrce la classe Field, nous avons pu mettre en vidence les bases de tout composant graphique. Ceux-ci peuvent tre deschamps de texte, de saisie de texte ou encore des boutons, d'ailleurs le prochain chapitre vous introduira les composants les plusutiliss. Ces composants sont indispensables pour crer des vues mais ne suffisent pas. C'est l qu'entrent en jeu les Managersou conteneurs.Comme son nom l'indique, un conteneur sert contenir d'autres lments, c'est--dire des composants mais galement d'autresconteneurs. Nous aurons galement le temps de revenir sur le concept de conteneur dans un chapitre qui leur est ddi.

    En attendant, sachez que ces conteneurs permettent de mettre en place les diffrents composants l'cran tels que vous pouvezle voir sur cette application que vous connaissez trs certainement :

    L'application Facebook

    Partie 2 : Les interfaces graphiques 28/191

    www.openclassrooms.com

  • Pour ceux qui auraient dj ralis de la programmation d'interfaces graphiques en Java, sachez que le principe est iciexactement le mme. Les objets graphiques que nous verrons sont trs similaires ceux utiliss en Java. Nousretrouverons donc les mmes composants basiques, cependant ceux-ci peuvent avoir un nom lgrement diffrent.

    Les ScreensEnfin pour finir sur le ct technique de ce chapitre, nous allons tudier la classe Screen ainsi que des classes hritant decelle-ci. Il s'agit de llment principal de l'affichage, c'est--dire que c'est lui qui englobe l'ensemble des lments tracer.D'ailleurs il s'agit d'une classe fille de la classe Manager vue prcdemment ; en effet puisqu'elle sert de conteneur pourl'ensemble des lments.Pour vous prouver que cette classe Screen est la base de tout affichage, sachez que nous l'avons dj utilis. Effectivement,si vous regardez bien nos codes prcdents, vous verrez apparatre une classe fille de celle-ci qui se nomme MainScreen :

    Code : Java

    /*** A class extending the MainScreen class, which provides defaultstandard* behavior for BlackBerry GUI applications.*/public final class MyScreen extends MainScreen{ public MyScreen() { }}

    Comme nous venons de le voir, il existe diffrentes classes pour crer un cran. Voici les trois principales : MainScreenhritant de la classe FullScreen elle-mme hritant de la classe Screen. Celles-ci se distinguent principalement par leurcontenu par dfaut. Voici une brve description de chacune d'entre elles :

    Classe DescriptionScreen Il s'agit de la classe de base : vous pouvez crer des crans en utilisant un conteneur.FullScreen Elle permet galement de crer une vue partir d'un cran vide, mais avec ici un conteneur de type vertical.

    MainScreen

    Cette classe permet de crer des crans possdant dj quelques lments standards :un titre d'cranun conteneur de type vertical avec dfilement (nous reviendrons l-dessus dans le chapitre consacraux conteneurs)un menu par dfaut

    En pratique, nous utiliserons principalement la classe MainScreen : il s 'agit de la classe privilgie pour un premiercran, cependant rien ne vous empche d'utiliser l'une des deux autres prsentes ci-dessus.

    Maintenant que nous connaissons les diffrents lments de base, je vais vous prsenter les diffrentes mthodes que noustudierons dans ce cours pour concevoir des interfaces graphiques.

    Les diffrentes techniquesComme nous avons vu, la conception d'interfaces graphiques peut tre ralise de diffrentes manires. Nous distinguerons toutd'abord l'utilisation de composants prdfinis et prts l'emploi, mais il nous est galement possible de dessiner directement l'cran pour crer des vues personnalises.Nous allons prsenter ici brivement la mise en uvre de ces techniques. Puis nous les dtaillerons davantage tout au long decette partie.

    Utilisation de composants prdfinisLa premire chose que nous allons apprendre dans cette partie est l'utilisation des composants prdfinis ainsi que leur

    Partie 2 : Les interfaces graphiques 29/191

    www.openclassrooms.com

  • disposition l'cran. C'est l'objet des deux prochains chapitres de ce cours.Grce cette technique, vous pourrez raliser des interfaces graphiques telles que celle de la calculatrice prsente plus haut.Pour rappel, voici l'interface graphique en question :

    Une calculatrice intgre.

    Sachez qu'une application n'est pas forcment compose d'une unique interface. Il est tout fait possible de travailleravec plusieurs crans que l'on fait dfiler les uns aprs les autres. Cependant, un seul cran peut tre affich la fois,les autres se contentent d'tre ouverts en arrire-plan.

    Pour concevoir ce type d'interfaces nous devrons utiliser des conteneurs, que nous pouvons voir comme des gestionnaires depositionnement. Pour cela nous utiliserons donc notre classe principale MainScreen, puis nous insrerons des conteneursqui contiendront eux-mmes des composants.Nous aurons tout le temps pour bien comprendre, mais saisissez qu'il s'agit uniquement d'lments imbriqus les uns dans lesautres. Il n'y aura donc aucune difficult dans le code source.

    Les vues personnalisesEnfin pour finir nous allons brivement prsenter la conception de vues personnalises. Ceci devrait ravir les futursprogrammeurs de jeux vido !Dans ce cas nous n'utiliserons pas de composants mais nous allons tracer diffrents lments l'cran. Nous utiliseronsgalement la classe MainScreen qui est indispensable. Cependant nous allons ici nous servir de la mthode paint() decette classe. Grce cette mthode nous pourrons utiliser la classe Graphics qui regorge de mthodes permettant de tracerdes lignes, des cercles, des rectangles, etc, mais galement afficher diffrentes images pour recrer tout ce qui vous passe par latte.

    l'aide de cette technique, nous pourrons en fin de partie raliser un jeu de taquin que voici :

    Un jeu de taquin ralis en fin de partie !

    Je pense que certains sont dj impatients de voir tout a. Je vous invite donc sans plus attendre passer au chapitre suivant !

    Partie 2 : Les interfaces graphiques 30/191

    www.openclassrooms.com

  • Tout objet graphique hrite de la classe Field.Les composants de base sont alors des champs de texte, de saisie de texte ou bien des boutons.La classe Manager sert crer des conteneurs permettant de grer la disposition des lments internes.Les lments de type Screen sont les conteneurs globaux qui englobent l'ensemble d'un cran .Une vue peut donc tre cre en disposant divers composants prdfinis.Une autre manire de concevoir une vue est de tracer diffrents lments l'cran pour crer une vue personnalise.

    Partie 2 : Les interfaces graphiques 31/191

    www.openclassrooms.com

  • Les composants de baseDans ce chapitre nous allons prsenter les composants les plus simples, mais surtout les plus utiliss, savoir :

    les champs de texteles boutonsles images.

    En combinant ces diffrents lments, vous pourrez ainsi crer des vues relativement complexes en les agenant correctementgrce aux conteneurs que nous verrons dans le prochain chapitre.Ce chapitre est long , mais il n'y a aucune difficult si vous prenez bien le temps de tout lire.

    Les champs de texteNous allons dans ce chapitre prsenter diffrents composants permettant de mettre en place une interface graphique. Chaquecomposant est associ une classe avec diffrentes mthodes pour le manipuler. Dans ce cours nous survolerons brivementles mthodes disponibles, c'est pourquoi je vous invite fortement visiter la documentation officielle pour vous perfectionner.Notamment vous pouvez visiter la rubrique Documentation pour plus de renseignements ou encore la rubriqueAPI reference pour visualiser l'ensemble des classes disponibles.

    IntroductionPour dmarrer ce chapitre, nous allons reprendre notre classe MyScreen crite pour notre premier projet Hello World. Sivous vous souvenez bien, nous avions utilis la classe RichTextField pour pouvoir afficher un message l'cran. Il s'agitdu premier composant que nous tudierons dans ce chapitre.Pour rappel, voici le code nous avions pour notre classe MyScreen :

    Code : Java

    package mypackage;

    import net.rim.device.api.ui.component.RichTextField;import net.rim.device.api.ui.container.MainScreen;

    public final class MyScreen extends MainScreen{ public MyScreen() { setTitle("Site du Zro"); add(new RichTextField("Salut les zros!")); }}

    Vous aurez certainement remarqu la prsence de la mthode add() que nous avions introduit dans la premire partiesans explications. Cette mthode de la classe MainScreen est une mthode commune tous les conteneurs, quipermet d'ajouter un lment ce conteneur. Pour l'utiliser il suffit de lui indiquer en paramtre l'instance du composant ajouter. Nous reparlerons plus amplement des conteneurs dans le prochain chapitre.

    Pour l'instant nous nous contenterons encore d'crire notre code l'intrieur du constructeur de la classe MyScreen.Sans plus attendre, je vous propose de faire un vaste tour des diffrents composants disponibles pour la cration d'interfacesgraphiques. Commenons tout de suite avec RichTextField !

    Afficher du textePour afficher du texte l'cran, nous disposons des deux classes RichTextField et LabelField. Ces deux composantssont trs similaires, et il est tout fait possible d'utiliser l'un ou l'autre. Peut-tre la classe LabelField est plutt utilise entant qu'tiquette pour d'autres contrles, alors que l'utilisation d'un RichTextField permet plus de paramtrages. Ceci dit,dans la plupart des cas les deux feront tout fait l'affaire.

    RichTextFieldDans notre projet Hello World, nous avions cr une instance de la classe RichTextField directement l'intrieur de lamthode add(). Toutefois il est possible de crer une instance de cette classe en la stockant dans une variable. C'est en effet lasolution que je vous recommande dans la majorit des cas.

    Partie 2 : Les interfaces graphiques 32/191

    www.openclassrooms.com

  • Nous pourrions alors rcrire le code prcdent de la manire suivante :

    Code : Java

    RichTextField monTexte = new RichTextField("Salut les zros!");add(monTexte);

    Les champs de texte de type RichTextField sont multilignes, vous pouvez donc insrer un long texte qui s'talera surplusieurs lignes si besoin. Nous allons essayer ceci en utilisant la mthode setText() qui permet de modifier le texte de notreRichTextField.Pour cela crivez le code suivant :

    Code : Java

    monTexte.setText("Lorem ipsum dolor sit amet, consectetur adipiscingelit. Nulla a metus justo. Aliquam erat volutpat. Proin molestiemauris id erat mattis consequat. Nulla ut mi ipsum. Suspendissetempor sollicitudin magna, ac blandit sapien commodo ut. Etiammattis dolor non dui bibendum at sollicitudin risus fringilla.Praesent placerat orci ut est egestas commodo. Aenean vehicularhoncus leo a ornare.");

    Vous obtiendriez alors un champ de texte sur plusieurs lignes comme prsent sur l'cran ci-dessous :

    La classe RichTextField possde de nombreuses autres mthodes telles que getText() pour rcuprer son texte ouencore la mthode setFont hrite de TextField qui permet de changer la police de celui-ci. Je vous laisserai le soin de lesdcouvrir par vous-mmes, en revanche nous parlerons des polices de caractres juste aprs la classe LabelField.

    LabelFieldComme dit prcdemment, la classe LabelField s 'utilise principalement de la mme manire que RichTextField. Nouspourrons donc dclarer une instance de cette classe comme ceci :

    Code : Java

    LabelField monTexte = new LabelField("Votre texte ici.");add(monTexte);

    Notez galement qu'il n'est pas ncessaire de renseigner le texte afficher ds la dclaration, et il en est de mme pour la classeRichTextField. Si vous le dsirez vous pouvez procder de la manire suivante :

    Partie 2 : Les interfaces graphiques 33/191

    www.openclassrooms.com

  • Code : Java

    LabelField monTexte = new LabelField();monTexte.setText("Votre texte ici.");add(monTexte);

    N'oubliez pas d'importer les diffrentes classes que vous utilisez. Pour viter de les importer une par une, il est possibled'importer tout le package en insrant la ligne suivante :

    Code : Java

    import net.rim.device.api.ui.component.*;

    Utilisation des policesL'utilisation des polices de caractres est toujours un peu dlicate, c'est pourquoi nous allons prsenter ici la manire de faire.Pour appliquer une police et un style un champ de texte nous devrons utiliser les deux classes Font et FontFamily. Unefois ces classes instancies, il est alors possible de faire passer la police de type Font en paramtre de la mthode setFont()d'un champ de texte. Voici un exemple d'utilisation de ces classes :

    Code : Java

    FontFamily typeCaracteres = FontFamily.forName("Comic Sans MS");Font maPolice = typeCaracteres.getFont(Font.BOLD, 26);monTexte.setFont(maPolice);

    Cependant si vous utilisez ce code tel quel, vous aurez des problmes de compilation. En effet, ce code pourrait gnrer uneexception. Pour grer ces exceptions, il faudra donc utiliser le bloc try{....} catch{...} du langage Java. Pour rappel,ce bloc d'instructions permet de grer des morceaux de code pouvant gnrer des exceptions ; par exemple une division par zro.Dans notre cas, voici comment l'utiliser :

    Code : Java

    try { FontFamily typeCaracteres = FontFamily.forName("Comic Sans MS"); Font maPolice = typeCaracteres.getFont(Font.BOLD, 26); monTexte.setFont(maPolice); }catch (ClassNotFoundException e) { System.out.println(e.getMessage());}

    Enfin pour que personne ne soit perdu, je vous propose un code reprenant la classe MySreen intgralement. Ce code afficheradonc un champ de texte de type RichTextField utilisant la police Comic Sans MS en gras et de taille 26.Voici donc la classe MySreen crite au complet :

    Code : Java

    package mypackage;

    import net.rim.device.api.ui.component.RichTextField;import net.rim.device.api.ui.container.MainScreen;import net.rim.device.api.ui.Font;import net.rim.device.api.ui.FontFamily;

    Partie 2 : Les interfaces graphiques 34/191

    www.openclassrooms.com

  • public final class MyScreen extends MainScreen{ public MyScreen() { RichTextField monTexte = new RichTextField(); try { FontFamily typeCaracteres = FontFamily.forName("Comic SansMS"); Font maPolice = typeCaracteres.getFont(Font.BOLD, 26); monTexte.setFont(maPolice); } catch (ClassNotFoundException e) { System.out.println(e.getMessage()); } monTexte.setText("Ce texte utilise la police \"Comic Sans MS\",style gras, taille 26"); add(monTexte); }}

    Je rappelle galement que pour insrer des guillemets dans votre texte, vous devez insrer un antislash \ avant le caractre.Lancez votre projet et vous devriez voir apparatre ceci l'cran :

    Les autres champs de texteNous allons maintenant voir diffrents champs de texte spcifiques qui permettent notamment l'utilisateur de saisir du textesous diffrentes formes depuis son clavier. Dans ce cours nous verrons ceux qui s'avrent les plus utiles et performants.

    EditFieldPour la saisie de texte, nous possdons diverses classes telles que TextField, BasicEditField, EditField etAutoTextEditField. Nous verrons uniquement les champs de type EditField qui sont les plus utiliss. Nanmoinsl'utilisation d'un champ de saisie de texte de type BasicEditField est quasiment identique celle que nous allons voir.Je vous propose donc de dcouvrir le constructeur de ce nouveau type de champ de texte :

    Code : Java

    EditField monTexte = new EditField("Etiquette: ", "");

    Vous remarquerez l'apparition d'une seconde chane de caractres dans le constructeur. En effet contrairement aux champs detexte LabelField ou RichTextField, les champs de saisie de texte possdent deux champs distincts :

    un label ou tiquette : il s 'agit de l'tiquette ou du nom associ la saisiela saisie : il s 'agit du texte renseign par l'utilisateur l'aide du clavier. Celui-ci peut tre vide au dpart mais peutgalement possder une valeur initiale.

    Vous trouverez donc des mthodes diffrentes pour chacun des champs. Par exemple la mthode setLabel() permettra demodifier l'tiquette alors que les mthodes setText() et getText() permettent de traiter la saisie.

    Aprs quelques frappes au clavier, vous pourriez avoir ceci :

    Les saisies de texte peuvent avoir des finalits trs diffrentes et leur gestion peut entraner facilement des erreurs ou des chosesinattendues. C'est pourquoi la saisie de texte peut tre facilite l'aide d'un filtre.

    Partie 2 : Les interfaces graphiques 35/191

    www.openclassrooms.com

  • Par exemple, nous pourrions forcer l'utilisateur renseigner uniquement des nombres entiers :

    Code : Java

    EditField monTexte = new EditField("Etiquette: ", "", 10,EditField.FILTER_INTEGER);

    Ou encore, nous pourrions imposer un texte en