/* * A Java program that creates a custom component with its own renderer, * and demonstrates how to load and render images. * * Ben Bederson, January 29, 2002 */ import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; public class BasicImage extends JFrame { static public void main(String[] args) { new BasicImage(); } public BasicImage() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ImageCanvas canvas = new ImageCanvas("dana.jpg"); canvas.setPreferredSize(new Dimension(400, 400)); getContentPane().add(canvas); pack(); setVisible(true); } } class ImageCanvas extends JComponent { Image image = null; public ImageCanvas(String fileName) { loadImage(fileName); } public void loadImage(String fileName) { image = Toolkit.getDefaultToolkit().createImage(fileName); MediaTracker tracker = new MediaTracker(this); tracker.addImage(image, 0); try { tracker.waitForID(0); } catch (InterruptedException exception) { System.out.println("Couldn't load image: " + fileName); } } public void paintComponent(Graphics graphics) { Graphics2D g2 = (Graphics2D) graphics; g2.setColor(Color.white); g2.fillRect(getX(), getY(), getWidth(), getHeight()); g2.drawImage(image, 50, 50, this); } }