home *** CD-ROM | disk | FTP | other *** search
Java Source | 1997-11-26 | 2.5 KB | 117 lines |
-
- package ch13;
-
- import java.awt.*;
- import java.io.*;
- /**
- * This class was generated by a SmartGuide.
- *
- */
- public class ImageCanvas extends Canvas implements Serializable {
- private String image;
- private Image img;
- MediaTracker myTracker;
-
- /**
- * Flag constructor comment.
- */
- public ImageCanvas() {
- this("us_flag.gif");
- }
- /**
- * This method was created by a SmartGuide.
- * @param newImage java.lang.String
- */
- public ImageCanvas (String newImage ) {
- myTracker = new MediaTracker(this);
- img = loadImage(newImage);
- }
- /**
- * This method was created by a SmartGuide.
- * @return java.lang.String
- */
- public String getImage() {
- return image;
- }
- /**
- * This method was created by a SmartGuide.
- * @return java.awt.Dimension
- */
- public Dimension getPreferredSize() {
- // Calculate the preferred size based on the label text
- if (img != null) {
- return new Dimension(img.getWidth(this), img.getHeight(this));
- }
- else {
- // System.out.println("Image not loaded!!!");
- return new Dimension(10, 10);
- }
- }
- /**
- * This method was created by a SmartGuide.
- * @return java.awt.Image
- * @param imageName java.lang.String
- */
- private Image loadImage(String imageName) {
- try {
- java.net.URL imgUrl=this.getClass().getResource("//"+imageName);
- img = Toolkit.getDefaultToolkit().getImage(imgUrl);
- myTracker.addImage(img, 0);
- try {
- myTracker.waitForID(0);
- }
- catch (InterruptedException e) {
- return null;
- }
- repaint();
- sizeToFit();
- return img;
- }
- catch (Exception e) {
- System.out.println("Cannot load: " + imageName);
- e.printStackTrace();
- return null;
- }
- }
- /**
- * This method was created by a SmartGuide.
- * @param g java.awt.Graphics
- */
- public void paint(Graphics g) {
- if ((myTracker.statusID(0, true) & MediaTracker.ERRORED) != 0) {
- g.setColor(Color.red);
- g.fillRect(0, 0, size().width, size().height);
- return;
- }
- if ((myTracker.statusID(0, true) & MediaTracker.COMPLETE) != 0) {
- g.drawImage(img, 0, 0, this);
- sizeToFit();
- }
- else {
- String str = new String("Loading...");
- g.drawString(str, 0, 0);
- }
- return;
- }
- /**
- * This method was created by a SmartGuide.
- * @param newImage java.awt.Image
- */
- public void setImage(String newImage) {
- img=loadImage(newImage);
- return;
- }
- /**
- * This method was created by a SmartGuide.
- */
- private void sizeToFit() {
- // Resize to the preferred size
- Dimension d = getPreferredSize();
- setSize(d.width, d.height);
- Component p = getParent();
- if (p != null)
- {
- p.invalidate();
- }
- }
- }