此Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及后续版本中更新的语言特性的概述。
请参阅JDK发行说明,了解有关所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息。
使用Graphics2D类的渲染提示属性来指定您希望对象尽快呈现还是希望呈现质量尽可能高。
要在Graphics2D上下文中设置或更改渲染提示属性,构造一个RenderingHints对象,并通过使用setRenderingHints方法将其传递给Graphics2D。如果您只想设置一个提示,可以调用Graphics2D的setRenderingHint方法,并指定要设置的提示的键值对。(键值对在RenderingHints类中定义。)
例如,要设置抗锯齿的首选项(如果可能),可以使用setRenderingHint:
public void paint (graphics g){
Graphics2D g2 = (Graphics2D)g;
RenderingHints rh = new RenderingHints(
RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2.setRenderingHints(rh);
...
}
RenderingHints支持以下类型的提示:
| 提示 | 键 | 值 |
|---|---|---|
| 反锯齿 | KEY_ANTIALIASING |
VALUE_ANTIALIAS_ONVALUE_ANTIALIAS_OFFVALUE_ANTIALIAS_DEFAULT |
| Alpha 插值 | KEY_ALPHA_INTERPOLATION |
VALUE_ALPHA_INTERPOLATION_QUALITYVALUE_ALPHA_INTERPOLATION_SPEEDVALUE_ALPHA_INTERPOLATION_DEFAULT |
| 颜色渲染 | KEY_COLOR_RENDERING |
VALUE_COLOR_RENDER_QUALITYVALUE_COLOR_RENDER_SPEEDVALUE_COLOR_RENDER_DEFAULT |
| 抖动 | KEY_DITHERING |
VALUE_DITHER_DISABLEVALUE_DITHER_ENABLEVALUE_DITHER_DEFAULT |
| 分数文本度量 | KEY_FRACTIONALMETRICS |
VALUE_FRACTIONALMETRICS_ONVALUE_FRACTIONALMETRICS_OFFVALUE_FRACTIONALMETRICS_DEFAULT |
| 图像插值 | KEY_INTERPOLATION |
VALUE_INTERPOLATION_BICUBICVALUE_INTERPOLATION_BILINEARVALUE_INTERPOLATION_NEAREST_NEIGHBOR |
| 渲染 | KEY_RENDERING |
VALUE_RENDER_QUALITYVALUE_RENDER_SPEEDVALUE_RENDER_DEFAULT |
| 笔画归一化控制 | KEY_STROKE_CONTROL |
VALUE_STROKE_NORMALIZEVALUE_STROKE_DEFAULTVALUE_STROKE_PURE |
| 文本反锯齿 | KEY_TEXT_ANTIALIASING |
VALUE_TEXT_ANTIALIAS_ONVALUE_TEXT_ANTIALIAS_OFFVALUE_TEXT_ANTIALIAS_DEFAULTVALUE_TEXT_ANTIALIAS_GASPVALUE_TEXT_ANTIALIAS_LCD_HRGBVALUE_TEXT_ANTIALIAS_LCD_HBGRVALUE_TEXT_ANTIALIAS_LCD_VRGBVALUE_TEXT_ANTIALIAS_LCD_VBGR |
| LCD 文本对比度 | KEY_TEXT_LCD_CONTRAST |
值应为范围在 100 到 250 之间的正整数。较低的值(如 100)表示在浅色背景上显示深色文本时,文本对比度较高。较高的值(如 200)表示在浅色背景上显示深色文本时,文本对比度较低。典型有用的值在 140-180 的范围内。如果未指定值,则会应用系统或实现的默认值。 |
当提示设置为默认值时,使用平台的默认渲染。