Wie Menü erstellen und Verknüpfen

Status
Nicht offen für weitere Antworten.

nero82

Mitglied
Hallo ich bin neu hier den ich habe neulich auch mal angefangen Java 2me zu programmieren und stehe da vor einem prob.

Ich würde gern ein auswahl Menü schreiben, wo es mehrere Titel gibt und wenn man eines Anwählt man dann in das entsprechende Untermenü kommt.

Z.B.
1. Addressen -- > Name
2. Spiele --> Action -->
Strategie -->
Denksport -->

Wisst ihr was ich meine? könnte mir das vielleicht jemand erklären oder hat jemand ein fertigen Quelltext der das Thema behandelt und gibt ihn mir?
Oder vllt kann es mir jemand an folgendem Bsp erklären?
Code:
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
 
public class HelloWorldMidlet extends MIDlet implements CommandListener {
 
    public HelloWorldMidlet() {
    }
    private Display display;
    private Form form;
    private StringItem stringItem;
    private Command exitCommand;
 
    public void commandAction(Command command, Displayable displayable) {
        if (displayable == form) {
            if (command == exitCommand) {
                exitMIDlet();
            }
        }
    }
        
    public void startApp() {
        stringItem = new StringItem("Hello", "World");
        form = new Form(null, new Item[] {stringItem});
        exitCommand = new Command("Exit", Command.EXIT, 1);
        form.addCommand(exitCommand);
        form.setCommandListener(this);
        display = Display.getDisplay(this);        
        display.setCurrent(form);

    }

    public void pauseApp() {
    }
  
    public void destroyApp(boolean unconditional) {
    }
 
    public void exitMIDlet() {
        display.setCurrent(null);
        notifyDestroyed();
    }
    
}

Ein normales Hello World und ich will zb. das
Hello --> World
Hallo --> Welt
das im hauptmenü Hello und Hallo steht und jedes soll halt bei anwahl in das entsprechende Menü gehen, entweder World oder Welt

MfG und danke im vorraus für eure hilfe.
 
Hi!

Wenn ich dich richtig verstanden habe:

Code:
Command cmdHello_EN = new Command("Hello", Command.SCREEN, 0);
Command cmdHello_DE = new Command("Hallo", Command.SCREEN, 0);

Form form = new Form("Hallo Welt!");
Form frmHello_DE = new Form("Hallo");
Form frmHello_EN = new Form("Hello");

frmHello_DE.addCommand(cmdHello_DE);
frmHello_DE.addCommand(cmdHello_EN);

frmHello_EN.addCommand(cmdHello_DE);
frmHello_EN.addCommand(cmdHello_EN);

if (command == cmdHello_EN) {
	display.setCurrent(frmHello_EN);
}

if (command == cmdHello_DE) {
	display.setCurrent(frmHello_DE);
}

oder
Code:
Command cmdHello_EN = new Command("Hello", Command.SCREEN, 0);
Command cmdHello_DE = new Command("Hallo", Command.SCREEN, 0);

Form form = new Form("Hallo Welt!");

if (command == cmdHello_EN) {
	form.removeCommand(cmdHello_EN);
	form.addCommand(cmdHello_DE);
}

if (command == cmdHello_DE) {
	form.removeCommand(cmdHello_DE);
	form.addCommand(cmdHello_EN);
}
 

nero82

Mitglied
Ich weiss nicht ich versuch das mal. zwischen welche zeilen pack ich deinen code in meinen? :bahnhof:

mfg :D
 
Die Ifs gehören in den ActionListener - ich hab hier leider keinen Compiler um den code auch zu testen :-(
Hoffe mal das funktioniert so.

Nochmal zur Erklärung meines ersten Posts:
Die erste Variante erstellt 2 verschiedene Forms die je nach Command angezeigt werden.
Die zweite tauscht einfach das Command aus.

Code:
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
 
public class HelloWorldMidlet extends MIDlet implements CommandListener {

private Command cmdHello_EN;
private Command cmdHello_DE;

private Form form;

 
    public HelloWorldMidlet() {
    cmdHello_EN = new Command("Hello", Command.SCREEN, 0);
    cmdHello_DE = new Command("Hallo", Command.SCREEN, 0);
    form = new Form("Hallo Welt!");
    }

    private Display display;
    private StringItem stringItem;
    private Command exitCommand;



    public void commandAction(Command command, Displayable displayable) {
        if (displayable == form) {
            if (command == exitCommand) {
                exitMIDlet();
            }
        }
        if (command == cmdHello_EN) {
	        form.removeCommand(cmdHello_EN);
	        form.addCommand(cmdHello_DE);
        }

        if (command == cmdHello_DE) {
	        form.removeCommand(cmdHello_DE);
        	form.addCommand(cmdHello_EN);
        }
    }        

    public void startApp() {
        stringItem = new StringItem("Hello", "World");
        form = new Form(null, new Item[] {stringItem});
        exitCommand = new Command("Exit", Command.EXIT, 1);
        form.addCommand(exitCommand);
        form.setCommandListener(this);
        display = Display.getDisplay(this);        
        display.setCurrent(form);

    }

    public void pauseApp() {
    }
  
    public void destroyApp(boolean unconditional) {
    }
 
    public void exitMIDlet() {
        display.setCurrent(null);
        notifyDestroyed();
    }
   
}
 

nero82

Mitglied
also das compilieren ging und ich konnte es auch auf handy installieren :)

aber leider steht immer noch nur Hello World da ohne unter menüs ^ ^....

lad dir doch Sun java wireless toolkit ist free und gut für sowas mfg
 

nero82

Mitglied
ok auf einem anderen handy geht es halb da habe ich zur auswahl
HellWorldMiDlet---> Hello World
also geht es auch nur so halb ^ ^mfg
 

Pappenheimer++

Bekanntes Mitglied
Mach solche Menüs lieber mit javax.lcdui.List und ModeChoice.IMPLICIT. Funktioniert auf allen möglichen Geräten tadellos,
 

nero82

Mitglied
So ich habe hier mal was zusammen gebaut mit hilfer einer anderen seite

Code:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class CanvasDrawExample extends MIDlet implements CommandListener{
  private Display display;
  private List list;
  private Command ok, exit;
  private CanvasDraw canvasDraw;
  int listItemIndex;

  public CanvasDrawExample(){
    canvasDraw = new CanvasDraw();
    display = Display.getDisplay(this);
    list = new List("Auswahl", List.IMPLICIT);
    ok = new Command("Select", Command.OK, 2);
    exit = new Command("Exit", Command.EXIT, 2);
    list.append("Hello", null);
    list.addCommand(ok);
    list.addCommand(exit);
    list.setCommandListener(this);
  }
  
  public void startApp(){
    display.setCurrent(list);
  }

  public void pauseApp(){}
  
  public void destroyApp(boolean unconditional){
    notifyDestroyed ();
  }

  public void commandAction(Command c, Displayable d){
    listItemIndex = list.getSelectedIndex();
    if(c == ok){
      display.setCurrent(canvasDraw);
    }else if(c == exit){
      destroyApp(true);
    }
  }

  class CanvasDraw extends Canvas implements CommandListener{
    Command back;

    public CanvasDraw(){
      back = new Command("Back", Command.BACK, 1);
      addCommand(back);
      setCommandListener(this);
    }

    public void paint(Graphics g){
int width = getWidth(); 
int height = getHeight();     
      g.setColor(0, 0, 255);
      g.fillRect(0,0, getWidth (), getHeight ());
      g.setColor(255, 0, 0);

      if(listItemIndex == 0){
       g.drawString("World", 0,0, Graphics.TOP | Graphics.LEFT);
}
 }

    public void commandAction (Command c, Displayable d){
      if(c == back){
        display.setCurrent(list);
      }
    }
  }
}
so sollte das in etwa aussehen, kann mir vllt noch jemand sagen wir ich das pain(Graphics) und g.drawString durch eine nochmal Text ansicht ersetzen kann.... mfg
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Menü Header App Absturz bei Headeränderungen Android & Cross-Platform Mobile Apps 49
AGW Android Links im Menü und Namen ändern Android & Cross-Platform Mobile Apps 2
B Android Settings Menü Design Android & Cross-Platform Mobile Apps 2
B Android XML File ein lesen und menü erzeugen Android & Cross-Platform Mobile Apps 1
D Startbildschirm -> Automatisch ins Menü weiterleiten Android & Cross-Platform Mobile Apps 3
A Android Menü Button oben links Android & Cross-Platform Mobile Apps 1
G selbes Menü auf jeder Activity Android & Cross-Platform Mobile Apps 4
G Android zur Laufzeit den Text im Menü ändern Android & Cross-Platform Mobile Apps 3
J Grafiken im metrischen Maß erstellen Android & Cross-Platform Mobile Apps 3
W Zip4J Zip erstellen und gespeichert URI Bilder einfügen Android & Cross-Platform Mobile Apps 3
Alex IV Android App erstellen Android & Cross-Platform Mobile Apps 3
F Audiostream erstellen und empfangen außerhalb des WLans Android & Cross-Platform Mobile Apps 8
E Neue app erstellen Android & Cross-Platform Mobile Apps 3
T Android Android Augmented Faces in Java. Neue Landmarks erstellen Android & Cross-Platform Mobile Apps 1
F Screenshot übergreifend bei erstellen (No-Root) Android & Cross-Platform Mobile Apps 1
B Inhaltsverzeichnis erstellen Android & Cross-Platform Mobile Apps 12
B Android Projekt für Android und IOS erstellen? Android & Cross-Platform Mobile Apps 5
J Android button mithilfe einer Methode automatisch erstellen Android & Cross-Platform Mobile Apps 6
Hijo2006 PDF erstellen Android & Cross-Platform Mobile Apps 4
? Android erstellen der grafischen Benutzeroberfläche und Kommunikation zwischen Apps Android & Cross-Platform Mobile Apps 8
D Android "mehrere" Fragmente erstellen + richtige Zuordnung. Aber wie? Android & Cross-Platform Mobile Apps 1
G Thread in einer Service erstellen Android & Cross-Platform Mobile Apps 0
G Datei erstellen Android & Cross-Platform Mobile Apps 10
A Android Datei erstellen/schreiben/auslesen Android & Cross-Platform Mobile Apps 1
H Frage bei erstellen eines Projectes Android & Cross-Platform Mobile Apps 3
J Userliste aus internet mit z.B xml erstellen Android & Cross-Platform Mobile Apps 5
B Android Button erstellen nach Vorlage Android & Cross-Platform Mobile Apps 4
L Android Datei erstellen, Daten einspeichern und auslesen Android & Cross-Platform Mobile Apps 2
F Bei einer Android Java App, Objekte erstellen Android & Cross-Platform Mobile Apps 2
H Android Contact erstellen Android & Cross-Platform Mobile Apps 2
J "Button" auf List erstellen Android & Cross-Platform Mobile Apps 4
F Problem beim Erstellen der Jar File Android & Cross-Platform Mobile Apps 4
B Textdatei auf Handy erstellen / lesen / schreiben? Android & Cross-Platform Mobile Apps 2
B Programm für NokiaComunicator erstellen Android & Cross-Platform Mobile Apps 2
K Programme für Handy erstellen Android & Cross-Platform Mobile Apps 3
P Erstellen einer Jar-File Android & Cross-Platform Mobile Apps 2
B Zufallszahlen zwischen 1 und 49 erstellen? aber wie? Android & Cross-Platform Mobile Apps 7

Ähnliche Java Themen


Oben