home *** CD-ROM | disk | FTP | other *** search
/ Learn Java Now / Learn_Java_Now_Microsoft_1996.iso / JavaNow / Code / AppB / DitherTest / DitherCanvas.class (.txt) next >
Encoding:
Java Class File  |  1996-07-26  |  1.7 KB  |  46 lines

  1. import java.awt.Canvas;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8.  
  9. class DitherCanvas extends Canvas {
  10.    Image img;
  11.    static String calcString = "Calculating...";
  12.  
  13.    public Image getImage() {
  14.       return this.img;
  15.    }
  16.  
  17.    public void setImage(Image img) {
  18.       this.img = img;
  19.       ((Component)this).repaint();
  20.    }
  21.  
  22.    public Dimension minimumSize() {
  23.       return new Dimension(20, 20);
  24.    }
  25.  
  26.    public Dimension preferredSize() {
  27.       return new Dimension(200, 200);
  28.    }
  29.  
  30.    public void paint(Graphics g) {
  31.       int w = ((Component)this).size().width;
  32.       int h = ((Component)this).size().height;
  33.       if (this.img == null) {
  34.          super.paint(g);
  35.          g.setColor(Color.black);
  36.          FontMetrics fm = g.getFontMetrics();
  37.          int x = (w - fm.stringWidth(calcString)) / 2;
  38.          int y = h / 2;
  39.          g.drawString(calcString, x, y);
  40.       } else {
  41.          g.drawImage(this.img, 0, 0, w, h, this);
  42.       }
  43.  
  44.    }
  45. }
  46.