java2d抗锯齿处理

Windows下的 ClearType 能使字体看上去更平滑,但似乎对于 java 小程序里面的文字没有作用。不过可以用 Java 2D API 提供的文本处理功能进行美化。Java 2D API 的文本功能包括:

使用抗锯齿处理和微调(hinting)以达到更好的输出质量
可以使用系统安装的所有字体
可以将对图形对象的操作(旋转、缩放、着色、剪切等等)应用到文本上。
支持向字符串添加内嵌属性(如字体、尺寸、深浅,甚至图像)
支持双向文本(启用从右到左的字符顺序,就象您在阿拉伯语和希伯来语中可能遇到的一样)
第一光标和第二光标能够浏览同时包含从右到左和从左到右字符顺序的文本。
先进的字体度量功能,超过旧的 java.awt.FontMetrics 类中的相应功能
排版功能可以实现单词换行和调整多行文本
这个 API 的核心是由 java.awt.Graphics2D 类提供的,该类是 java.awt.Graphics 的一个子类。API 的其它部分由 java.awt 层次结构中的其它包提供,包括 java.awt.color 、 java.awt.font 和 java.awt.geom 。对 Graphics2D 使用 setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 以达到边缘平滑的效果
//文字可以用java.awt.Graphics2D类抗锯齿!
public void paint(Graphics g) {
      if(g instanceof Graphics2D){
             Graphics2D g2d=(Graphics2D)g;//Graphics2D是Graphics的子类
             //抗锯齿,绘制质量等可参考RenderingHints类的文档!
             g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
     }
}

字体粗可以显示正常,但字体愈小就会出现模糊。

你可能感兴趣的:(java,windows)