此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_ON VALUE_ANTIALIAS_OFF VALUE_ANTIALIAS_DEFAULT |
Alpha 插值 | KEY_ALPHA_INTERPOLATION |
VALUE_ALPHA_INTERPOLATION_QUALITY VALUE_ALPHA_INTERPOLATION_SPEED VALUE_ALPHA_INTERPOLATION_DEFAULT |
颜色渲染 | KEY_COLOR_RENDERING |
VALUE_COLOR_RENDER_QUALITY VALUE_COLOR_RENDER_SPEED VALUE_COLOR_RENDER_DEFAULT |
抖动 | KEY_DITHERING |
VALUE_DITHER_DISABLE VALUE_DITHER_ENABLE VALUE_DITHER_DEFAULT |
分数文本度量 | KEY_FRACTIONALMETRICS |
VALUE_FRACTIONALMETRICS_ON VALUE_FRACTIONALMETRICS_OFF VALUE_FRACTIONALMETRICS_DEFAULT |
图像插值 | KEY_INTERPOLATION |
VALUE_INTERPOLATION_BICUBIC VALUE_INTERPOLATION_BILINEAR VALUE_INTERPOLATION_NEAREST_NEIGHBOR |
渲染 | KEY_RENDERING |
VALUE_RENDER_QUALITY VALUE_RENDER_SPEED VALUE_RENDER_DEFAULT |
笔画归一化控制 | KEY_STROKE_CONTROL |
VALUE_STROKE_NORMALIZE VALUE_STROKE_DEFAULT VALUE_STROKE_PURE |
文本反锯齿 | KEY_TEXT_ANTIALIASING |
VALUE_TEXT_ANTIALIAS_ON VALUE_TEXT_ANTIALIAS_OFF VALUE_TEXT_ANTIALIAS_DEFAULT VALUE_TEXT_ANTIALIAS_GASP VALUE_TEXT_ANTIALIAS_LCD_HRGB VALUE_TEXT_ANTIALIAS_LCD_HBGR VALUE_TEXT_ANTIALIAS_LCD_VRGB VALUE_TEXT_ANTIALIAS_LCD_VBGR |
LCD 文本对比度 | KEY_TEXT_LCD_CONTRAST |
值应为范围在 100 到 250 之间的正整数。较低的值(如 100)表示在浅色背景上显示深色文本时,文本对比度较高。较高的值(如 200)表示在浅色背景上显示深色文本时,文本对比度较低。典型有用的值在 140-180 的范围内。如果未指定值,则会应用系统或实现的默认值。 |
当提示设置为默认值时,使用平台的默认渲染。