Zwei Anfaengerfragen

Status
Nicht offen für weitere Antworten.
S

SaschaLR

Gast
Hallo!

Ich benutze zur Entwicklung Eclipse mit EclipseME-Plugin, was ja auch prima funktioniert. Nur habe ich Probleme ein Objekt vom Typ Image zu erzeugen, denn ich bekomme immer IOExceptions. Wo genau muss ich die Datei im Workspace ablegen, damit ich direkt darauf zugreifen kann?

Im jeweiligen Ordner gibt es ja die Ordner ".settings", "deployed" und "verified". In letzerem noch "classes" und "libs".

Kann mal kurz jemand erklären, wie das am Besten zu handhaben ist, also ... wo hinein und nen Beispiel-Konstruktor-Aufruf?


Ok, das zweite ist: Wie installiere ich das fertig Programm auf nem Handy? Ich mache es bei meinem zur Zeit so, dass ich per Bluetooth-Dongle direkt auf das Gerät in den Ordner mit Java-Apps kopiere. Das ist aber bestimmt nicht der beste Weg, oder? Wie ists denn zB bei Handys von Freunden, die kein Bluetooth haben oder so ... was gibt es an Möglichkeiten zur Installation auf Handys?

Danke für eure Zeit!

Gruss, Sascha
 

BRT006

Aktives Mitglied
Zur ersten Frage:

Da die Klasse Image soweit ich weiß eine abstrakte Klasse ist, rufst du gar keinen Konstruktor, sondern überläßt das der Factory-Methode:

Code:
Image.createImage("meinbild.gif");

Zweitens: Es hängt immer vom Handymodell ab wie du etwas installieren kannst, prinzipiell bieten sich die Möglichkeiten Bluetooth, Infrarot oder OTA (Over-the-air, Download über den WAP-Browser).
 
S

SaschaLR

Gast
Hi!

Danke für die Antwort.

Wegen dem Bild: Ich habe das ganze noch garnicht installieren wollen, sondern nur in Eclipse (mit EclipseME) testen wollen... und da taucht der Fehler auf.

java.io.IOException
at javax.microedition.lcdui.ImmutableImage.<init>(+30)
at javax.microedition.lcdui.Image.createImage(+8)
at Widgets.<init>(+171)
at java.lang.Class.runCustomCode(+0)
at com.sun.midp.midlet.Selector.commandAction(+50)
at javax.microedition.lcdui.List.keyPressed(+71)
at javax.microedition.lcdui.Display$DisplayAccessor.keyEvent(+147)
at com.sun.kvem.midp.lcdui.EmulEventHandler$EventLoop.run(+295)

Zum Thema Installation: Für die Variante mit WAP brauche ich auch nen Server, der WAP-Fähig ist, gell?

Gruss, Sascha
 

BRT006

Aktives Mitglied
Zur Exception: Zeit mal ein paar Zeilen Code, wo die Exception fliegt.

Zum Server: Da brauchts bloß irgend nen Webserver. Dort stellst du das jar-Archiv und den jad-Deskriptor bereit. EclipseME sollte dir beides erzeugen können. Dann öffnest du nur noch die URL (z.B. http://mein.kleiner.apache.de/der_name_meines_deskriptors.jad) und dann sollte das Handy einen Installationsdialog zeigen. Ggf. könnte es Probleme geben, wenn der Webserver nen falschen MIME-Typ angibt, manchen Handys ist das egal, Motorolas zicken da ein wenig.
 
S

SaschaLR

Gast
Hi!

Ist ziemlich so, wie du es gepostet hattest

Code:
try{
	bild = Image.createImage(".\datei.jpg");
}
catch(IOException ioe){
	ioe.printStackTrace();
}

bild ist vom Typ Image. Habe es mit .jpg und .png versucht und auf diese weisen: "./bild.jpg", ".\bild.jpg" und "bild.jpg". Die Datei liegt im Hauptverzeichnis des Projetkes...

Gruss, Sascha
 

server007

Mitglied
Bei Eclipse habs ich so gemacht:
Man muss das Bild (mach zur Sicherheit ein png-File draus) per
Code:
Image img = Image.createImage("/mountain.png");
laden.
dies kann eine IOException werfen, falls das Bild nicht existiert.
 
C

ctc

Gast
Die Resource wird sinnvollerweise im Verzeichnis 'res/package-name' abgelegt.
Nach dem Build wird automtisch eine Kopie in das Verzeichnis 'bin/package-name' abgelegt.
Nach dem Verify wird automatisch eine Kopie in das Verzeichnis 'verified/classes/package-name' abgelegt.

PS: Ein Blick in die beigefügte Samples des WTK ist nicht das 'dümmste'.
mfg ctc


Code:
    private InputStream inputStream;
    static final String imgFile = new String("windhose.png");
    private static Image pic;

    public WindIntro(WindApp windApp)
    {
        // prepare source image 
        inputStream = getClass().getResourceAsStream(imgFile);
        try 
        {
            pic = Image.createImage(inputStream);
            formIntro.append(pic);
        }
         catch (IOException e) 
        {
            formIntro.append(e.toString());
        }
        ...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben