Canvas kann nichts auf Graphics drawen

Status
Nicht offen für weitere Antworten.

Hutmacher

Bekanntes Mitglied
Wiso funktioniert das nicht? Es soll nurbeim Durck von der Taste 5 was zeichnen ...
Java:
package hello;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;

public class HelloCanvas extends Canvas
{
   private final static int DRAW_COMMAND = KEY_NUM5;

   public void paint(Graphics g)
   {
       g.drawString("Hello", 55, 55, Graphics.BOTTOM);
   }
   
   protected void keyPressed(int keyCode)
   {
       if (keyCode == DRAW_COMMAND)
       {
           repaint();
       }
   }
}

Das rufe ich so auf:
Java:
...
 public Midlet()
    {
        display = Display.getDisplay(this);
    }

    public void startApp()
    {
        display.setCurrent(new HelloCanvas());
    }
...

Aber der Handy-Screen bleibt schwarz und ich kassiere:
Code:
TRACE: <at java.lang.IllegalArgumentException>, Exception caught in Display class
java.lang.IllegalArgumentException
 - java.lang.System.quickNativeThrow(), bci=0
 - hello.HelloCanvas.paint(), bci=9
 - javax.microedition.lcdui.CanvasLFImpl.uCallPaint(), bci=202
 - javax.microedition.lcdui.Display$ChameleonTunnel.callPaint(), bci=33
 - com.sun.midp.chameleon.layers.BodyLayer.paintBody(), bci=12
 - com.sun.midp.chameleon.CLayer.paint(), bci=46
 - com.sun.midp.chameleon.CWindow.paintLayers(), bci=115
 - com.sun.midp.chameleon.CWindow.paint(), bci=127
 - com.sun.midp.chameleon.MIDPWindow.callPaint(), bci=45
 - javax.microedition.lcdui.Display.callPaint(), bci=227
 - javax.microedition.lcdui.Display$ForegroundEventConsumerImpl.handleDisplayForegroundNotifyEvent(), bci=215
 - com.sun.midp.lcdui.ForegroundEventListener.process(), bci=53
 - com.sun.midp.events.EventQueue.run(), bci=179
 - java.lang.Thread.run(), bci=11
 
S

SlaterB

Gast
paint wird auch so aufgerufen, unabhängig von deiner keyPressed-Steuerung tritt da die Exception auf,
was es mit Graphics.BOTTOM auf sich hat, weiß ich nicht, in Tutorials sehe ich jedenfalls (in den letzten 30 Sekunden google)
nur Top | Left
J2ME Draw String

ob keyPressed() usw. funktioniert wäre danach eine andere Frage,
um das potentiell ständig aufgerufene paint() dort sauber zu beeinflussen, setze z.B. eine boolean-Variable,
nur wenn die true ist, dann in paint auch was zeichnen,
den Zustand der boolean-Variablen kannst du in keyPressed() steuern, die wird sicher kein anderer automatisch ändern
 

Hutmacher

Bekanntes Mitglied
Danke, es klappt soweit; aber kann mir jemand das
Code:
Graphics.TOP | Graphics.LEFT
erläutern? Was hat das
Code:
 |
da zu suchen? Das steht doch, soweit ich weiß, für einen logischen Oder-Vergleich ohne Short-Circuit-Evaluation (heißt also beide Werte werden ausgewertet, anstatt nur des erstens, wenn dieser wahr ist) ...
 
S

SlaterB

Gast
bei Bits ist das eine Rechenoperation

001 | 010 = 011

irgendjemand anders schaut dann, welche Bits alle gesetzt sind,


Befehl Bit Operatoren

edit:
bei boolean ist es letztlich genauso eine Rechnung
 
Status
Nicht offen für weitere Antworten.
Ä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
B Java ME Canvas Android & Cross-Platform Mobile Apps 2
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
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
R NUR Audios von der App sollen abgespielt werden und nichts anders Android & Cross-Platform Mobile Apps 3
N Android OnTouchListener tut nichts Android & Cross-Platform Mobile Apps 3
A myView.getMeasuredWidth() gibt nichts zurück Android & Cross-Platform Mobile Apps 2
P Graphics-Objekt zum teilweise neuzeichen Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben