在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 DIALOG 、DIALOG_INPUT 、SERIF 、SANS_SERIF 和 MONOSPACED 。 | "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(不添加跟踪) |