J2ME - Darstellung eines Counters

Dynamaik

Grünschnabel
Hallo!

Ich möchte einen Counter programmieren und diesen gerne in einer TextBox ausgeben.
Das mit dem Counter funktioniert schon so wie ich es möchte. Ich weiß nur nicht wie ich das ganze
in eine TextBox packen soll.

Wenn ich die TextBox unter startApp() mit display.setCurrent() angebe, dann kann ich mein Menü nicht mehr
öffnen.

Vielleicht hat ja jemand einen Tipp.


Code:
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.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.*;


public class Stoppuhr extends MIDlet implements CommandListener, Runnable {

    Thread t = null;
    int i = 0;
    int counter = 0;
    String s = Integer.toString(counter);
    TextBox tb = new TextBox("Counter", s, 100, TextField.NUMERIC);
    private Display display;
    private Command menu1 = new Command("Start", Command.ITEM, 1),
            menu2 = new Command("Stop", Command.ITEM, 1),
            menu3 = new Command("Cancel", Command.EXIT, 2),
            menu4 = new Command("Pause", Command.STOP, 3),
            menu5 = new Command("Counter", Command.SCREEN, 4);
    private Form f = new Form("Start der App");

    public Stoppuhr() {
        f.append("Menu o?ffnen!");
        f.addCommand(menu1);
        f.addCommand(menu2);
        f.addCommand(menu3);
        f.addCommand(menu4);
        tb.addCommand(menu5);
        f.setCommandListener(this);
    }

    public void startApp()
            throws MIDletStateChangeException {
        display = Display.getDisplay(this);
        display.setCurrent(f);
        if (t == null) {
            t = new Thread(this);


        }
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable d) {
        if (c == menu3) {
            notifyDestroyed();
        } else if (c == menu1) {
            t.start();
        } else if (c == menu2) {
            reset();
        } else if (c == menu4) {
            stopAll();
        }

    }

    public void run() {
        Thread thisThread = Thread.currentThread();
        while (t == thisThread) {
            try {
                Thread.sleep(100);
                counter++;
                System.out.println(counter);
            } catch (InterruptedException ex) {
                ex.printStackTrace();

            }
        }
    }

    public void stopAll() {
        t = null;
    }

    public void reset() {
        counter = 0;
    }
}
 

MiMi

Erfahrenes Mitglied
Ich kenn mich nicht wirklich mit J2ME aus (nicht mehr), aber warum fuegst du nicht einfach deine Textbox dann zum Display hinzu sobald du auch den Thread startest ? :)
 

oneof6

Mitglied
Hi,

ich weiß nicht genau was Du machen willst, aber ich würde Dir raten die Graphics Klassen zu nutzen und Dein Menü, Texte, Linien...what ever selbst zu malen. So hast Du viel mehr Freiheit und es sieht besser aus...viel schwerer ist es auch nicht. Hier mal ein Link zu nem guten Buch, dass Dir zeigt wie die Graphics Spielereien laufen: http://www.jasonlam604.com/

Gruß,
OneOf6
 

Neue Beiträge