Java ME Canvas

B

Blablablublu

Gast
Hallo Leute,
ich habe vor einigen Wochen mit der Programmierung von J2ME Anwendungen begannen und habe folgendes Problem mit Canvas und den Aurfufen von ebend diesen.
Meine Canvas Klasse die Zeichen soll sieht wie folgt aus:
Java:
public class MIDPCanvas extends Canvas implements CommandListener {
  String eventType = "press any key!";
  int keyCode;
    /**
     * constructor
     */
    public MIDPCanvas() {
        try {
            // Set up this canvas to listen to command events
            setCommandListener(this);
            // Add the Exit command
            addCommand(new Command("Exit", Command.EXIT, 1));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * paint for a test
     */
    public void paint(Graphics g) {
        g.drawString("Sample Text", 10,5, g.TOP | g.LEFT);
        g.drawLine(2,2,10,10);
    }

    /**
     * Called when a key is pressed.
     */
    protected void keyPressed(int keyCode) {
            eventType = "released";
            this.keyCode = keyCode;
            repaint ();
    }
und dies möchte im MiDlet wie folgt aufrufen (also nur wenn der aktuelle Bildschirm form1 ist):
Java:
public class HelloMIDlet extends MIDlet implements CommandListener {
...
public HelloMIDlet() {
      display = Display.getDisplay(this);
    }
...
public Form getForm1 () {
if (form1 == null) {
Canvas canvas = new MIDPCanvas();
  display = Display.getDisplay(this);
  display.setCurrent(canvas);
}
...
}
...
public void startApp() {
        if (midletPaused) {
            resumeMIDlet();
            
        } else {
            initialize();
            startMIDlet();
            Display display =Display.getDisplay(this);
            
            
        }
        midletPaused = false;
    }
...
}
form1 bleibt aber leer wenn ich den Emulator starte. Kann mir jemand weiterhlefen?
 

Inse60

Mitglied
Hallo Blablablublu,

das was du hier als Quelltext zeigst ist sicher von einer IDE generiert und nach meiner Meinung nicht geeignet JavaME zu lernen.

Ich habe mal alles überflüssige entfernt.

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

public class HelloMIDlet extends MIDlet{

    Display display;


    public HelloMIDlet() {
    }

    public void startApp(){

       display = Display.getDisplay(this);
       MIDPCanvas c = new MIDPCanvas();
       c.m = this;
       display.setCurrent(c);
    }

    public void pauseApp(){

    }

    public void destroyApp(boolean b){

    }

    public void beenden(){
      destroyApp(true);
      notifyDestroyed();
    }
}

Java:
import javax.microedition.lcdui.*;


public class MIDPCanvas extends Canvas implements CommandListener{

  public HelloMIDlet m = null;

  String text = "press any key!";

  public MIDPCanvas() {
    setCommandListener(this);
    addCommand(new Command("Exit", Command.EXIT, 1));
  }

  public void paint(Graphics g) {
    g.setColor(200, 200, 200);
    g.fillRect(0, 0, this.getWidth(), this.getHeight());
    g.setColor(255, 0, 0);
    g.drawString(text, 10,50, g.TOP | g.LEFT);
    g.setColor(0, 0, 0);
    g.drawLine(10, 80, 100, 80);
  }

  protected void keyPressed(int keyCode) {
    text = "released " + new Integer(keyCode).toString();
    repaint ();
  }

  public void commandAction(Command c, Displayable d) {
    if(m != null)
      m.beenden();
  }
}

Ich empfehle unbedingt das Buch "Java ist auch eine Insel" um die Grundlagen von Java zu lernen.

Für die JavaME Grundlagen vielleicht das hier.
Und unbedingt die JavaME API aus dem Wireless Toolkit.

Martin
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Arif Android Canvas wird nicht gezeichnet? Android & Cross-Platform Mobile Apps 0
Dechasa Android Android - Canvas NullpointException Android & Cross-Platform Mobile Apps 2
Z Canvas onDraw() Variablen muss in der Methode initialisiert werden Android & Cross-Platform Mobile Apps 1
F Mit Canvas zeichen und durch einen Timer aktualiesieren Android & Cross-Platform Mobile Apps 1
J Canvas mit dem Accelorometersensor bewegen Android & Cross-Platform Mobile Apps 0
E Android Zeichnen auf Canvas - Teilbereich als Bild speichern Android & Cross-Platform Mobile Apps 3
B onDraw Canvas jede Millisekunde aufrufen? Android & Cross-Platform Mobile Apps 12
G canvas in view anzeigen Android & Cross-Platform Mobile Apps 10
S Android Canvas - drawText - Update Text in ActionListener Android & Cross-Platform Mobile Apps 8
J Java ME Canvas Klasse Gameloop und Funktion Android & Cross-Platform Mobile Apps 2
B Java ME Leere Canvas Seite Android & Cross-Platform Mobile Apps 21
P Java ME Texteingabe Canvas Android & Cross-Platform Mobile Apps 2
D wie geht Klassenvererbung von Canvas Klassen Android & Cross-Platform Mobile Apps 2
U Probleme mit der drawString Methode bei Canvas Android & Cross-Platform Mobile Apps 8
H Canvas kann nichts auf Graphics drawen Android & Cross-Platform Mobile Apps 3
M Textfeld in Canvas, implementation der keys aendern Android & Cross-Platform Mobile Apps 8
M Text in Canvas scrollen lassen Android & Cross-Platform Mobile Apps 13
M Wie in einer anderen "nicht canvas" klasse zeichne Android & Cross-Platform Mobile Apps 5
U ein texteingabefeld auf einem Canvas . Android & Cross-Platform Mobile Apps 2
A Problem: Canvas-Grösse Motorola RAZR v3r Android & Cross-Platform Mobile Apps 8
F Canvas Stringlänge Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben