如何使像素完美Line2D - Graphics2D

时间:2011-09-07 04:55:34

标签: java swing graphics2d

G'那天,我有JPanel,上面有一些Line2D对象。问题是,当我绘制这条线时,它并不像我想要的那样出现。线条不平滑,用词解释很难,所以我发布了一张图片,

enter image description here

Zoomed Area,

enter image description here

如何让它们看起来更光滑而不是皱纹。

由于

1 个答案:

答案 0 :(得分:10)

问题很可能是您没有打开图形上下文的抗锯齿功能。在绘制之前尝试以下行:

graphics.setRenderingHint(
        RenderingHints.KEY_ANTIALIASING,
        RenderingHints.VALUE_ANTIALIAS_ON);

(当然,graphics是你的Graphics2D实例)。

稍后当您发现您正在绘制的文本也是丑陋和锯齿状的时候,您会想要使用

graphics.setRenderingHint(
        RenderingHints.KEY_TEXT_ANTIALIASING,
        RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

然而,文字有点复杂;这个提示有几个值可以根据(除其他外)你正在绘制文本的屏幕类型来使用。您应该阅读RenderingHints.KEY_TEXT_ANTIALIASING API doc了解这些详细信息。