# Schlicht und einfach Bild anzeigen ;)



## joh91 (2. Jun 2010)

Hallo zusammen,

ich versuche nun schon seit ein paar stunden mittels MIDlet ein bild auf meinem handy erscheinen zu lassen.
Allerdings ließt man überall von verschiedenen codes und Möglichkeiten dies zu tun... 
Hier mal ein teil des codes den ich geschrieben habe:


```
public class Photo extends MIDlet implements CommandListener
{
    private Command exitCommand;
    private Display display;
    private Image image = null;

    public Photo()
    {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.SCREEN, 2);

        try
        {
            image = Image.createImage(getClass().getResourceAsStream(" /graphics/x.png"));
        }
        catch (Exception e)
        {
              e.printStackTrace();
        }

    }

    public void startApp()
    {
        TextBox t = new TextBox("", " ", 256, 0);
        image.createImage(50,50);
        t.addCommand(exitCommand);
        t.setCommandListener(this);
        display.setCurrent(t);
    }
```

Ich weis aber nicht wo mein fehler liegt. Klar, auf meinem Handy springt mir immer nur die meldung "Fehler in der Anwendung" entgegen. Aber das hilft mir nun auch nicht weiter.
Bild ist im .png Format und das bild habe ich im Ordner graphics in der .jar-File untergebracht.
Stimmt denn am Code etwas nicht?!
Hoffe, dass mir jemand helfen kann...

LG


----------



## hansmueller (2. Jun 2010)

Hallo,

jetzt mal nur so auf die schnelle (muß dringend weg)...

```
(" /graphics/x.png")
```
Wieso ist da ein Leerzeichen?
Vielleicht funktioniert es mit

```
("/graphics/x.png")
```

MfG
hansmueller


----------



## Inse60 (2. Jun 2010)

Hallo,

ich beschäftige mich auch gerade ein bisschen damit und habe mir das Projekt "Photoalbum" (wird mit dem Toolkit installiert) angesehen.

Du erzeugst ein Image aber zeigst es nirgendwo an. Das bedeutet du musst die "paint-Methode" eines anzeigbaren Objektes (Canvas) überschreiben und das als mit "display.setCurrent(Objekt);" zur aktuellen Anzeige machen.

Mal so aus der Hüfte geschossen.

Martin


----------



## Inse60 (2. Jun 2010)

So, es hat mir keine Ruhe gelassen.  Wie gesagt bin auch noch am probieren.


```
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Bildtest extends MIDlet implements CommandListener
{
    private Command exitCommand;
    private Display display;
    private Image image = null;
 
  class BildCanvas extends Canvas
  {
    protected void paint(Graphics g) {
      g.drawImage(image, 0, 0, Graphics.LEFT | Graphics.TOP);
    }
  }
  
    public Bildtest()
    {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.SCREEN, 2);
 
        try
        {
            image = Image.createImage(getClass().getResourceAsStream("/graphics/x.png"));
        }
        catch (Exception e)
        {
              e.printStackTrace();
        }
 
    }
 
    public void commandAction(Command c, Displayable s) {
      destroyApp(false);
      notifyDestroyed();
    }
    
    public void startApp()
    {
        BildCanvas t = new BildCanvas();
        image.createImage(50,50);
        t.addCommand(exitCommand);
        t.setCommandListener(this);
        display.setCurrent(t);
    }
    protected void pauseApp() {
    }
    protected void destroyApp(boolean unconditional) {
    }
}
```
Grüße Martin


----------



## joh91 (2. Jun 2010)

Klasse wenn man auf die schnelle so viel Input bekommt!
Danke an alle 
werd mich gleich mal damit auseinandersetzen


----------



## The_S (4. Jun 2010)

Hier => Java Blog Buch : 21.03 High-Level vs. Low-Level GUI <= und hier => Java Blog Buch : 21.04.01 Java ME Screen Elemente <= findest du ein Beispiel zum Anzeigen eines Bildes in einer High-Level GUI. Hier => Java Blog Buch : 21.05.02 Texte und Bilder zeichnen <= zum Anzeigen eines Bildes auf einer Low-Level GUI.


----------

