Re: drawImage() Question
danny wrote:
Hello
I am traying to draw an image in a JPanel and I really don't know how,
I already searched in google but none of the answers worked ok,
where I have the problem is getting the image if I do this:
g.drawImage(img, x, y,(I don't understand what goes here)
How can I have the image loaded
Thank you
Danny
Danny:
It would be nice if you told us where the image actually is. But let's
assume (you know what that makes us) that it is on disk or accessible
through the internet. Let's also assume that you are using a modern
compiler, 1.4 or later.
g.drawImage(Image image,int x,int y,ImageObserver observer)
What goes there is the ImageObserver if you are using the
Producer/Observer pattern. If you acquire the whole image before you
attempt to draw it you can put 'null' there. If you are going to use
the Producer/Observer pattern you will probably put a reference to the
component that you are drawing on. In most cases that will be 'this'.
Here is an example of how to read an image file and draw it on a JPanel.
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.net.*;
import javax.imageio.*;
import javax.swing.*;
public class ImageIOExample extends JPanel {
BufferedImage image;
public ImageIOExample(String urlString) {
try {
URL url = new URL(urlString);
image = ImageIO.read(url);
setPreferredSize(new Dimension(
image.getWidth(),image.getHeight()));
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
public void paint(Graphics g) {
// no observer required but may be included
g.drawImage(image,0,0,null);
}
public static void main(final String[] args) {
// GUI must be created on the EDT
Runnable r = new Runnable() {
public void run() {
JFrame f = new JFrame("ImageIOExample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIOExample iioe = new ImageIOExample(args[0]);
f.add(iioe,BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
};
// runs the Runnable above on the EDT
EventQueue.invokeLater(r);
}
}
To see an image on the local disk:
java ImageIOExample file:localimage.jpg
To see an image from the net:
java ImageIOExample http://www.thealpacastore.com/alpacacam/latest640.jpg
--
Knute Johnson
email s/nospam/knute/