# Anfängerfrage : Form und CommandListener - Warum geht das nicht?



## xip (11. Sep 2009)

Hallo,

ich habe gerade versucht das Display auf eine neue Form zu setzten. Dabei stellte sich herraus das eine Exception geworfen wird, sobald ich einen Command in der neuen Form ausführe.


```
package hello;

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

public class HelloMIDlet extends MIDlet implements CommandListener {

    private Command exitCommand; // The exit command
    private Command neu; // The exit comman
    private Display display;     // The display for this MIDlet

    public HelloMIDlet() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.EXIT, 0);
        neu = new Command("Neu", Command.OK, 0);

    }

    public void startApp() {
        TextBox t = new TextBox("Hello", "Hello, World!", 256, 0);

        t.addCommand(exitCommand);
        t.addCommand(neu);
        t.setCommandListener(this);

        display.setCurrent(t);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
        if (c == neu) {
            display.setCurrent(new Fenster(this));
        }
    }

}

class Fenster extends Form implements CommandListener
{
    private Command go; // The exit comman

    public Fenster (HelloMIDlet midlet)
    {
        super("Fenster");
        go = new Command("Go", Command.OK, 0);
        this.addCommand(go);
    }

    public void commandAction(Command c, Displayable d) {

    }
}
```

habt ihr da eine Idee warum das so nicht hinhaut?

dank euch.

lg


----------



## The_S (11. Sep 2009)

Was kommt für eine Fehlermeldung und wo?


----------



## xip (11. Sep 2009)

die Exception wird in der commandAction() geworfen.

Hier die Exception:

TRACE: <at java.lang.NullPointerException:   0>, Exception caught in Display class
java.lang.NullPointerException:   0
 - javax.microedition.lcdui.Display$ChameleonTunnel.callScreenListener(), bci=46
 - com.sun.midp.chameleon.layers.SoftButtonLayer.processCommand(), bci=74
 - com.sun.midp.chameleon.layers.SoftButtonLayer.soft1(), bci=37
 - com.sun.midp.chameleon.layers.SoftButtonLayer.keyInput(), bci=36
 - com.sun.midp.chameleon.CWindow.keyInput(), bci=38
 - javax.microedition.lcdui.Display$DisplayEventConsumerImpl.handleKeyEvent(), bci=17
 - com.sun.midp.lcdui.DisplayEventListener.process(), bci=277
 - com.sun.midp.events.EventQueue.run(), bci=179
 - java.lang.Thread.run(), bci=11
javacall_lifecycle_state_changed() lifecycle: event is JAVACALL_LIFECYCLE_MIDLET_SHUTDOWNstatus is JAVACALL_OK
bdj-run:
cdc-run:
profiler.check:
open-profiler:
run:
BUILD SUCCESSFUL (total time: 16 seconds)


----------



## The_S (11. Sep 2009)

Und ne ordentliche Fehlermeldung mit StackTrace? Sorry, so kann man dir nicht helfen!


----------



## xip (11. Sep 2009)

ich habe keinen Debugger an meine SDK 3.0 rangehängt.

Mir kommt das nur ein bischen spanisch von das das mit den 2 CommandListener nicht funktioniert.


----------



## xip (11. Sep 2009)

oh verdammt!!!!

Ich weis was fehlt:

this.setCommandListener()

Oh man, sorry, kurzer senieler Aussetzer!!!


----------

