在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
键 | 值类型 | 主要常量 | 默认值 |
| String | 请参阅 Font
| "Default"(使用平台默认值) |
| Number | WEIGHT_REGULAR、WEIGHT_BOLD | WEIGHT_REGULAR |
| Number | WIDTH_CONDENSED、WIDTH_REGULAR 、 WIDTH_EXTENDED | WIDTH_REGULAR |
| Number | POSTURE_REGULAR、POSTURE_OBLIQUE | POSTURE_REGULAR |
| Number | 无 | 12.0 |
|
| 请参阅 TransformAttribute | TransformAttribute.IDENTITY |
| Integer | SUPERSCRIPT_SUPER、SUPERSCRIPT_SUB | 0(使用标准字形和规格) |
|
| 无 | null(不重写字体分辨率) |
|
| 无 | null(使用字体字形绘制文本) |
|
| 无 | null(使用当前图形绘制) |
|
| 无 | null(不呈现背景) |
| Integer | UNDERLINE_ON | -1(不呈现下划线) |
| Boolean | STRIKETHROUGH_ON | false(不呈现删除线) |
| Boolean | RUN_DIRECTION_LTR、 RUN_DIRECTION_RTL | null(使用 |
| Integer | 无 | 0(使用基线方向) |
| Number | JUSTIFICATION_FULL | JUSTIFICATION_FULL |
|
| (参见类) | null(不应用输入高亮显示) |
| Integer | UNDERLINE_LOW_ONE_PIXEL、 UNDERLINE_LOW_TWO_PIXEL | -1(不呈现下划线) |
| Boolean | SWAP_COLORS_ON | false(不交换颜色) |
|
| 无 | null(不对数字进行定形) |
| Integer | KERNING_ON | 0(不要求进行字距调整) |
| Integer | LIGATURES_ON | 0(不形成可选的连字) |
| Number | TRACKING_LOOSE、TRACKING_TIGHT | 0(不添加跟踪) |