在Java中提供的默认的Font类,是不能提供带线划线的字体样式的。

要想实现需要使用到TextAttribute类

举例:

 

HashMap<TextAttribute,Object> hm = new HashMap();
  hm.put(TextAttribute.FAMILY,"宋体");//字体名称
  hm.put(TextAttribute.SIZE, 12);//字体大小
  hm.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE);//斜体
  hm.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD);//粗体
  hm.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);//下滑线
  
  Font font = new Font(hm);

 

我上边的例子中只列出了常用的几个设置,其他请参考API

 

 


值类型

主要常量

默认值

FAMILY

String

请参阅 Font DIALOGDIALOG_INPUT

SERIFSANS_SERIFMONOSPACED

"Default"(使用平台默认值)

WEIGHT

Number

WEIGHT_REGULAR、WEIGHT_BOLD

WEIGHT_REGULAR

WIDTH

Number

WIDTH_CONDENSED、WIDTH_REGULAR 、

WIDTH_EXTENDED

WIDTH_REGULAR

POSTURE

Number

POSTURE_REGULAR、POSTURE_OBLIQUE

POSTURE_REGULAR

SIZE

Number


12.0

TRANSFORM

TransformAttribute

请参阅 TransformAttribute IDENTITY

TransformAttribute.IDENTITY

SUPERSCRIPT

Integer

SUPERSCRIPT_SUPER、SUPERSCRIPT_SUB

0(使用标准字形和规格)

FONT

Font


null(不重写字体分辨率)

CHAR_REPLACEMENT

GraphicAttribute


null(使用字体字形绘制文本)

FOREGROUND

Paint


null(使用当前图形绘制)

BACKGROUND

Paint


null(不呈现背景)

UNDERLINE

Integer

UNDERLINE_ON

-1(不呈现下划线)

STRIKETHROUGH

Boolean

STRIKETHROUGH_ON

false(不呈现删除线)

RUN_DIRECTION

Boolean

RUN_DIRECTION_LTR、

RUN_DIRECTION_RTL

null(使用 Bidi 标准默认值)

BIDI_EMBEDDING

Integer


0(使用基线方向)

JUSTIFICATION

Number

JUSTIFICATION_FULL

JUSTIFICATION_FULL

INPUT_METHOD_HIGHLIGHT

InputMethodHighlight

Annotation

(参见类)

null(不应用输入高亮显示)

INPUT_METHOD_UNDERLINE

Integer

UNDERLINE_LOW_ONE_PIXEL、

UNDERLINE_LOW_TWO_PIXEL

-1(不呈现下划线)

SWAP_COLORS

Boolean

SWAP_COLORS_ON

false(不交换颜色)

NUMERIC_SHAPING

NumericShaper


null(不对数字进行定形)

KERNING

Integer

KERNING_ON

0(不要求进行字距调整)

LIGATURES

Integer

LIGATURES_ON

0(不形成可选的连字)

TRACKING

Number

TRACKING_LOOSE、TRACKING_TIGHT

0(不添加跟踪)