Manipulation des interfaces en J2ME

Résolu
cs_heros12 Messages postés 12 Date d'inscription mardi 2 mars 2010 Statut Membre Dernière intervention 29 mars 2010 - 16 mars 2010 à 10:49
cs_heros12 Messages postés 12 Date d'inscription mardi 2 mars 2010 Statut Membre Dernière intervention 29 mars 2010 - 17 mars 2010 à 12:21
Salut pour tout le monde , alors dans le cadre d'un exercice j'ai besoin de préparer des interfaces sur un mobile à l'aide de la frame work J2ME alors j'arrive à réaliser quelque interface mais le problème est la méthode de navigation entre ces interfaces , alors voilà mon code qu'est compiler sans erreur mais à la phase d'exécution il se bloque juste après l'affichage de la premier forme exactement quand je touche une commande :( envoyer ou bien exit), alors SVP aider moi à résoudre se problème et merci d'avance :


import javax.microedition.lcdui.*;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.MIDlet;


public class teste1 extends MIDlet implements CommandListener
{
protected Display display;

private Form form1 = new Form(" DATA SOFT ");
private Form form2;
public TextField Pseudo = new TextField("LOGIN ", null, 8, TextField.ANY);
public TextField Password = new TextField("Mot de Passe ", null, 8, TextField.PASSWORD);

private Command exitCommand = new Command("Exit", Command.EXIT, 0);
private Command Envoyer = new Command("Envoyer", Command.SCREEN, 1);

protected void startApp()
{
display = Display.getDisplay(this);

form1.append(" AUTENTIFICATION ");
form1.append(Pseudo);
form1.append(Password);
form1.addCommand(exitCommand);
form1.addCommand(Envoyer);
form1.setCommandListener(this);
display.setCurrent(form1);
}

protected void pauseApp()
{
}

protected void destroyApp(boolean unconditional)
{
}
public void commandAction(Command c, Displayable s)
{
teste22 tt = new teste22();
if (c == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
if (c == Envoyer)
{
tt.afficher(Pseudo);
}
}
}
class teste22 extends MIDlet implements CommandListener
{
protected Display display;

private Form form2 = new Form(" ACCEUILLE ");
//private String res = Pseudo.getString();

private Command exitCommand = new Command("Exit", Command.EXIT, 0);
private Command Send = new Command("Envoyer", Command.SCREEN, 1);

//private Display display = Display.getDisplay(this);
//protected teste22() { }

protected void startApp()
{
display = Display.getDisplay(this);
}
public void afficher(TextField don)
{
String rep = don.getString();
form2.append(rep);
form2.addCommand(exitCommand);
form2.addCommand(Send);
form2.setCommandListener(this);
display.setCurrent(form2);

}

protected void pauseApp()
{
}

protected void destroyApp(boolean unconditional)
{
}
public void commandAction(Command c, Displayable s)
{ }

}

2 réponses

cs_princesse1 Messages postés 1 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 17 mars 2010
17 mars 2010 à 10:06
Bonjour,

tout d'abord, tout programme J2ME hérite de MIDLET qui doit implémenter 3 méthodes, qui seront controlées par l'AMS:

* startApp() est effectué au démarrage ou redémarrage.
* paused() utilisée pour empecher le blocage de ressoruce par l'applet
* destroyApp qui sert de fin de vie "naturelle" à l'applet
et dans ton programme on trouve deux Midlets ce qui n'est pas juste.
voici la version qui marchera:

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;

public class Midlet extends MIDlet implements CommandListener {

protected Display display;
private Form form1 = new Form(" DATA SOFT ");
public TextField Pseudo = new TextField("LOGIN ", null, 8, TextField.ANY);
public TextField Password = new TextField("Mot de Passe ", null, 8, TextField.PASSWORD);
private Command exitCommand2 = new Command("Exit", Command.EXIT, 0);
private Command Envoyer = new Command("Envoyer", Command.SCREEN, 1);
private Form form2 = new Form(" ACCEUILLE ");
//private String res = Pseudo.getString();
private Command exitCommand = new Command("Exit", Command.EXIT, 0);
private Command Send = new Command("Envoyer", Command.SCREEN, 1);

protected void startApp() {
display = Display.getDisplay(this);

form1.append(" AUTENTIFICATION ");
form1.append(Pseudo);
form1.append(Password);
form1.addCommand(exitCommand);
form1.addCommand(Envoyer);
form1.setCommandListener(this);
display.setCurrent(form1);
}

protected void pauseApp() {
}

protected void destroyApp(boolean unconditional) {
}

public void commandAction(Command c, Displayable s) {


if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
if (c == Envoyer) {
afficher(Pseudo);
}
if (c == Send) {
// par exemple
afficher(Password);
}
if (c == exitCommand2) {
destroyApp(false);
notifyDestroyed();
}
}

public void afficher(TextField don) {
String rep = don.getString();
form2.append(rep);
form2.addCommand(exitCommand2);
form2.addCommand(Send);
form2.setCommandListener(this);
display.setCurrent(form2);

}
}


Jamais 2 midlet ds un programme J2ME
3
cs_heros12 Messages postés 12 Date d'inscription mardi 2 mars 2010 Statut Membre Dernière intervention 29 mars 2010
17 mars 2010 à 12:21
merci bien la princesse1 et bon courage, mais chui en cours d'apprendre la J2ME c'est pour c'est là que je fait cette erreur ,merci bien .
0