home *** CD-ROM | disk | FTP | other *** search
/ Chip Special: HTML & Java / Chip-Special_1997-01_HTML-a-Java.bin / javasdk / sdk-java.exe / SDKJava.cab / Samples / AWT / FontTest / myCanvas.java < prev   
Encoding:
Java Source  |  1996-10-10  |  2.3 KB  |  103 lines

  1. import java.awt.*;
  2.  
  3. public class myCanvas extends Canvas
  4. {
  5.     StringBuffer    buffer;
  6.     public int         nChars;
  7.     int             x;
  8.     int             y;
  9.     Color            white;
  10.     Color            black;
  11.     Color            yellow;
  12.     Image             offScreen;
  13.     
  14.     //////////////////////////////////////////////////////////////////////////
  15.     //
  16.     myCanvas()
  17.     {
  18.         buffer = new StringBuffer();
  19.         nChars = 0;
  20.         white = new Color(255,255,255);
  21.         black = new Color(0,0,0);
  22.         yellow = new Color(255,255,0);
  23.         x = 4;
  24.         y = 4;
  25.  
  26.         offScreen = null;
  27.     }
  28.     
  29.     //////////////////////////////////////////////////////////////////////////
  30.     //
  31.     void setHeight(int newY)
  32.     {
  33.         y = size().height / 2;
  34.     }
  35.     
  36.     //////////////////////////////////////////////////////////////////////////
  37.     //
  38.     public String getText()
  39.     {
  40.         return buffer.toString();
  41.     }
  42.     
  43.     //////////////////////////////////////////////////////////////////////////
  44.     //
  45.  
  46.     public void paint(Graphics g)
  47.     {
  48. //        System.out.println("myCanvas::paint() -> Graphics = " + g.getClass().getName());
  49.         Dimension s = size();
  50.  
  51.         if( offScreen == null )
  52.             offScreen = createImage(s.width,s.height);
  53.  
  54.         Graphics gOff = offScreen.getGraphics();
  55. //        System.out.println("myCanvas::paint() -> offGraphics = " + gOff.getClass().getName());
  56.         
  57.         gOff.setColor(yellow);        
  58.         gOff.fillRect(0, 0, s.width, s.height);
  59.         gOff.setColor(white);        
  60.         gOff.fillRect(4, 4, s.width-8, s.height-8);
  61.         
  62.         if( nChars > 0)
  63.         {
  64.             gOff.setColor(black);
  65.             gOff.drawString(buffer.toString(), x, 24);
  66.  
  67.             char[] chars = (buffer.toString()).toCharArray();
  68.             gOff.drawChars( chars, 0, nChars, x, 64);
  69.         }
  70.         else if(nChars < 0)
  71.             System.out.println("myCanvas::paint() --> error! (nChars < 0)");
  72.         g.drawImage(offScreen, 0, 0, null);
  73.     }
  74.     
  75.     //////////////////////////////////////////////////////////////////////////
  76.     //
  77.  
  78.     public boolean keyDown(Event e, int key)
  79.     {
  80.         System.out.println("character " + key + " entered");
  81.         if( (key & 0xff00) != 0)
  82.             System.out.println("Unicode char found!");
  83.             
  84.         switch(key)
  85.         {
  86.             case 8:
  87.                 if( nChars != 0)
  88.                     buffer.setLength(--nChars);
  89.                 break;
  90.                 
  91.             default:
  92.                 nChars++;
  93.                 buffer.append((char)key);
  94.                 break;
  95.         }
  96.         repaint();
  97.         return true;
  98.     }
  99.     
  100.     //////////////////////////////////////////////////////////////////////////
  101.     //
  102. }
  103.