FileDocCategorySizeDatePackage
BlockCanvas.javaAPI DocExample915Sun Mar 28 19:08:48 BST 1999None

BlockCanvas.java

import java.awt.*;


public class BlockCanvas extends Canvas {
  
  CharacterBlock block = CharacterBlock.getBlock("Basic Latin");
  
  int charWidth = 20;
  int charHeight = 15;
  int hgap = 5;
  int vgap = 0;

  public BlockCanvas() {
    setFont(new Font("Monospaced", Font.BOLD, 12));
  }
  
  public void setBlock(CharacterBlock block) {
    this.block = block;  
    this.repaint();  
  }
  
  public CharacterBlock getBlock() {
    return block;
  }

  public void paint(Graphics g) {

    char[] charsOnPage = block.getCharactersInBlock(); 
    int charsPerRow = (getSize().width - 2*hgap)/charWidth;
    if (charsPerRow <= 0) charsPerRow = 1; 
    
    for (int i = 0; i < charsOnPage.length; i++) {
      int x = i % charsPerRow; 
      int y = i / charsPerRow + 1;
      g.drawChars(charsOnPage, i, 1, hgap + charWidth*x, vgap + charHeight*y);    
    }

  }
  
}