こんな指定をします。
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
定数としては長いので ststic import が便利です
import static java.awt.RenderingHints.*;
と書いておいて
g2.setRenderingHint(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON);
というところまでは短くできます
java.awt.RenderingHints にそれぞれのkey,valueの説明があります。これは"hint"なので、そのまま指定通りにするわけではなく画面なのかプリンタなのか、カラーなのかモノクロームなのかなどの要素を勘案して決めるようです。システム内に「内部値」があって、hintとは1対1で対応させず、組み合わせによって決定しているので不満な場合はかなり広範囲な試行錯誤が必要です。逆にある程度指示を出してあとはうまくやってよということが可能であると信じたくなります。
今回の目的でのおすすめは次の2つ。
g2.setRenderingHint(KEY_ANTIALIASING,VALUE_ANTIALIAS_ON); g2.setRenderingHint(KEY_TEXT_ANTIALIASING,VALUE_TEXT_ANTIALIAS_ON);
文を書く場所により印刷のみにもプレビューだけにも両方にもできます。残念ながらプレビューの印象と印刷後の印象はかなり異なると思います。
APIのjava.awt.RenderingHints に書かれているキーと値の一覧です。KEY_, VALUE_ は省いています。
No | KEY_... | VALUE_... | ||
---|---|---|---|---|
1 | ALPHA_INTERPOLATION | ALPHA_INTERPOLATION_SPEED | ALPHA_INTERPOLATION_QUALITY | ALPHA_INTERPOLATION_DEFAULT |
2 | ANTIALIASING | ANTIALIAS_ON | ANTIALIAS_OFF | ANTIALIAS_DEFAULT |
3 | COLOR_RENDERING | COLOR_RENDER_SPEED | COLOR_RENDER_QUALITY | COLOR_RENDER_DEFAULT |
4 | DITHERING | DITHER_DISABLE | DITHER_ENABLE | DITHER_DEFAULT |
5 | FRACTIONALMETRICS | FRACTIONALMETRICS_OFF | FRACTIONALMETRICS_ON | FRACTIONALMETRICS_DEFAULT |
6 | INTERPOLATION | INTERPOLATION_NEAREST_NEIGHBOR | INTERPOLATION_BILINEAR | INTERPOLATION_BICUBIC |
7 | RENDERING | RENDER_SPEED | RENDER_QUALITY | RENDER_DEFAULT |
8 | STROKE_CONTROL | STROKE_NORMALIZE | STROKE_PURE | STROKE_DEFAULT |
9 | TEXT_ANTIALIASING | TEXT_ANTIALIAS_ON /_OFF | TEXT_ANTIALIAS_GASP | TEXT_ANTIALIAS_DEFAULT |
10 | TEXT_LCD_CONTRAST | 100 - 250 の正の整数 | 一般に便利な値は 140-180 の狭い範囲 |
OSやプリンタにもよるので、印刷のテストはやめて画面だけにします。
3207B
g2.setRenderingHint(KEY_TEXT_ANTIALIASING,VALUE_TEXT_ANTIALIAS_ON);
11450B
g2.setRenderingHint(KEY_ANTIALIASING,VALUE_ANTIALIAS_ON);
文字にも影響している。VALUE_TEXT_ANTIALIAS_OFFを指定すると止まる
11644B
g2.setRenderingHint(KEY_ANTIALIASING,VALUE_ANTIALIAS_ON); g2.setRenderingHint(KEY_TEXT_ANTIALIASING,VALUE_TEXT_ANTIALIAS_ON);
11644B