image.getHeight(null) gibt immer -1 zurück?

Layna

Erfahrenes Mitglied
Huhu :).
Wenn man mal was neues will...
Ich wollte zum anzeigen eines Bildes folgende Klasse benutzen:

Java:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;

import javax.swing.JComponent;

public class ImageComponent extends JComponent {

	private Image image;
	public ImageComponent (Image image)
	{
	this.image = image;
	setPreferredSize (new Dimension (image.getWidth(null),
	image.getHeight(null)));
	}
	
	public void paintComponent (Graphics g)
	{
	g.drawImage(image,0,0,null);
	}
	
}

Testaufruf des ganzen:

Java:
                 Image test = null;
		ImageComponent anzeige;

		Toolkit myKit = Toolkit.getDefaultToolkit();
		try {
			test = myKit.createImage(new URL("http://members.aol.com/ooaland/Obblack.gif"));
			System.out.println(test.getHeight(null));
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		
		anzeige = new ImageComponent(test);
		
		this.getContentPane().add(anzeige);
		System.out.println(anzeige.getSize());

Das Bild wird auch absolut richtig angezeigt.. nur bekomem ich eben bei der anfrage der Höhe immer 'ne -1, was das ganze eher unschön macht.
Hat jemand 'ne Lösung, oder zumidnest 'nen tipp was mir fehlt?
 
Zuletzt bearbeitet:
Code:
#
setPreferredSize (new Dimension (image.getWidth(null),
#
    image.getHeight(null)));

Möchte das nicht bestimmt behaupten aber bin mir relativ sicher:
da du dem Image eine angepasste größe gibst gibt er dir -1 zurück da das einer angepassten größe entspricht! du kannst die größe des image nur auslesen falls es eine fixe größe hat!
 
Also, -1 für angepasste größe: sehe ich ein, macht sinn :).

Aber wo gebe ich dem Bild das mit? Oder kommt das -1 durch das createImage mit der URL als Quelle zustande? Wenn ja: ich sollte (hoffe ich...) nach createImage doch ein Objekt haben das das Bild enthält, NICHT den Verweis zur URL wo es ursprünglich herkam. Gibt Java mir keinen Weg die Grösse des tatsächlichen Image-Objektes zu berechnen?
 
Zurück