# ImageObserver



## A3XX (12. Jun 2004)

Hi

Was ist denn ein Image Observer? Will ein kleines Photoalbum programmieren, wo man mittles einer FileDialog Box ein Bild öffnen kann ->


```
choosePicture = new FileDialog(this, "Load picture", FileDialog.LOAD);
choosePicture.show() //By the way gleich noch eine Frage: Wieso muss man .show machen und nicht .setVisible(true)?

picture = getImage(choosePicture.getFile()) //Hier hats e ein Fehler da man ja mit choosePicture nur den Namen kriegt.Tipps?

g.drawImage(picture, 20, 20, picture.getWidth(), picture.getHeight(), this); //Da ist das eigentliche Problem: Mann muss einen ImageObserver als Parameter übergeben...was ist das ?
```


----------



## Beni (12. Jun 2004)

Siehe API :wink:

Du kannst einfach die Component übergeben, auf der du zeichnest.


----------



## A3XX (12. Jun 2004)

Ich weiss auch nicht, vielleicht ibn ich ja noch zu blöd für diese API aber ich schnalle dort eigentlich kaum je etwas da die einfach nie irgend ein Beispiel machen.. sorry  :cry: 

Deswegen muss ich trotzdem fragen, denn die drei Fragen oben habe ich nicht gefunden oder aber nicht verstanden.. ???:L


----------



## Beni (12. Jun 2004)

Zu 1:
Gibt es "setVisible" schon in AWT? Falls ja: k.A.

Zu 2:

```
picture = getImage( new File( choosePicture.getFile() ) );
```

Zu 3:
Ein ImageObserver ist eine Klasse mit einer Methode, die aufgerufen wird, sollte das Image neue Pixel geladen hat. Das wird benötigt, falls ein Image bereits gezeichnet wird, noch während es geladen wird, dann kann es nämlich nocheinmal vollständig gezeichnet werden.


----------



## Illuvatar (12. Jun 2004)

1: setVisible(true) gibt es in AWT  , und ist sogar besser als show().


----------



## A3XX (12. Jun 2004)

danke erstmal. schon einiges geholfen.

aber an diesem getImage verzweifle ich noch...derw ill als parameter-typen URL und String

In meinem Buch schreibt der einfach getCodeBase(), "irgendwas.gif"
Aber ist ja kaum immer nützlich.

Ich schrieb jetzt(weil deines irgendwie auch eine Fehlermeldung gab in Eclipse)


```
File pictureFile = new File(choosePicture.getText()); //Anm: hab jetzt mal einfach ein Textfeld genommen
picture = getImage(pictureFile.toURL(), pictureFile.getName());
```

gibt zwar keinen FEhler aber lädt auch einfach kein Bild


----------



## A3XX (12. Jun 2004)

ha, habs doch gelöst. Fehler gefunden.

Danke für eure Hilfe


----------



## Hardestadt (14. Jun 2004)

Hi, 

ich hab ein ähnliches Problem...

Kannst Du bitte posten, wie Dein Code jetzt aussieht?

In meinem Code benutze ich "drawImage", was auch in der Klasse selber wunderbar funktioniert. Nur wenn ich die Methode aus einer anderen Klasse aufrufen will, gibt es eine NullPointerException...   


Danke!


----------



## A3XX (14. Jun 2004)

hm soweit ich das im kopf habe (eben gerade im geschäft):



```
Image image = new Image();

image = getImage(choosePicture.getFile());

g.drawImage(picture, 20, 20, picture.getWidth(this), picture.getHeight(this), this);
```


----------

