fontmap.java

来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 73 行

JAVA
73
字号
     import java.awt.*;
     import java.util.*;

     public class FontMap extends Object
     {
          // 储存Image数据的Hashtable
          private Hashtable table;

          // 在表中找不到匹配时所用的默认图像
          private Image defaultImage;

          // 根据给定的(key,value)对数组构建一个 FontMap 
          public FontMap(Object[] keys, Image[] images)
          {
               int numImages = images.length;

               // 创建一个 Hashtable,初始容量是numImages
               table = new Hashtable(numImages);

               // 把每一个键和对应的值添加到表中
               for(int i = 0; i < numImages; i++)
               {
                    table.put(keys[i], images[i]);
               }

               setDefaultImage(null);
          }     

          public boolean putImage(Object key, Image img)
          {
               if(table != null)
               {
                    table.put(key, img);
                    return true;
               }
               return false;
          }

          public void setDefaultImage(Image img)
          {
               defaultImage = img;
          }

          // 在Graphics2D的(x,y)位置绘制给定的字符串
          public void drawString(String s, int x, int y, Graphics2D g2d)
          {
               int length = s.length();
               Image image;

               // 绘制字符串中每一个字符所对应的图像
               for(int i = 0; i < length; i++)
               {
                    // 从表中取出Image
                    image = (Image)table.get(""+s.charAt(i));

                    // 如果在表中没找到匹配图像则使用默认图像 
                    if(image == null)
                    {
                         image = defaultImage;
                    }

                    // 只有在图像有效时才绘制
                    if(image != null)
                    {
                         g2d.drawImage(image, x, y, null);
                    }

                    // 最后,移动绘制的位置
                    x += image.getWidth(null);
               }
          }    // drawString

    }     // FontMap

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?