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 + -
显示快捷键?