2009-02-26 3 views
0

Ich versuche, die BufferedImage-Klasse in AWT zu verwenden. Ich verwende J2ME auf der IBM J9 virtuellen Maschine.Java AWT - BufferedImage Probleme bei der Verwendung von J2ME und J9

Wenn ich versuche, und rufen Sie die BufferedImge.getRastor() Methode, die ich die folgende Ausnahme erhalten:

Exception in thread "main" java.lang.NoSuchMethodError: java/awt/image/BufferedImage.getRastor()Ljava/awt/image/WritableRaster; 

nun von dem, was ich über die JVM wissen, dass Fehler im Grunde sagt mir, dass die BufferedImage Klasse nicht habe eine Methode namens getRastor(), die ein WriteableRaster-Objekt zurückgibt, jedoch ist diese Methode in der API dokumentiert und sie stammt aus Version 1.4.2 und sollte daher mit J2ME kompatibel sein.

Ich habe keine Ahnung, was hier vor sich geht, können Sie mir helfen?

Cheers,

Pete

Antwort

0

Sie werden nicht in der Lage sein, etwas von AWT in J2ME zu verwenden, da seine nicht unterstützt.

Das passiert, weil J2ME nicht AWT hat. AWT soll in Desktop-Anwendungen (Java SE) mit einem anderen Benutzermodell und anderen Funktionalitäten verwendet werden.

Sie können einen Blick auf J2ME docs nehmen here

J2ME verwendet einen anderen Ansatz GUIs in Bezug auf, können Sie die hohe Abstraktion API (Formen) und das niedrige Niveau API (CANVAS) verwenden.

+0

Das ist sehr verwirrend - ich kann erfolgreich Code ausführen, der java.awt.Image und java.awt.Frame (und mehr!) Warum werden diese unterstützt und BufferedImage nicht? –

+0

Vielleicht, weil Ihre IDE JavaSE auf dem Klassenpfad hat. Ich bin mir nicht sicher.:/ Was benutzen Sie? das drahtlose Toolkit der Sonne? Oder ein proprietäres Toolkit? Kannst du diesen Code auf dem Gerät korrekt ausführen? –

0

Ich glaube nicht, das ist die Antwort ... aber da Sie Ihre Ausnahme zitiert, und ich nehme an, Sie es geschnitten und geklebt, werde ich versuchen zu helfen.

Ist nicht die Methode:

getRaster 

nicht

getRastor 

?

(sorry, wenn dies nicht das, was es ist krank Sie ...)

+0

Entschuldigung, ich habe die Fehlermeldung (schlecht!) Vom PDA kopiert, auf dem mein Code läuft. Ich habe verdoppelt überprüft und ich rufe .getRaster() –

+0

(so ist das nicht, was das Problem ist) –

0

Die akzeptierte Antwort ist nicht korrekt (Stand: 05.08.2009). Welche APIs verfügbar sind, hängt von der Konfiguration und Profilkombination ab, die Sie bereitstellen. Sie müssen jedoch tun auf die J2ME-Dokumentation für genau welche 1.4 Klassen und Mitglieder werden unterstützt.

Mit CDC 1.0 mit Personal Profile 1.1 erhalten Sie eine abgespeckte Version von Java SE 1.4. Personal Profile 1.0 ist eine abgespeckte Java SE 1.3. Beide haben eine ziemlich komplette Implementierung von AWT (kein Swing, obwohl).

Wir verwenden J9's CDC/PP auf Handheld/PDA Geräten ziemlich erfolgreich.