posted 22 years ago
The java.awt.Image API explains why -1 is returned. This API is actually rather tricky - it's asynchronous. This means that you can (and often do) get an Image object that's not yet fully loaded. Methods like getHeight() may return -1 to indicate that the height() data is not yet available - try again later. The class was designed this way because frequently you might be downloading images from a slow source, and you have the option to use those parts of the image data that are available, as they become available, rather than waiting for the whole thing. (A typical example - if you're laying out a web page, you can set aside space for an image once you know it's height and width - even though you can't display the image yet.) Anyway, in order to use Image effectively you typically have to make use of the ImageObserver class to create an object that will notify you when the data you need is loaded. Here's a class I made some time ago to do this:
"I'm not back." - Bill Harding, Twister