在SWT中启用抗锯齿功能

时间:2009-11-05 04:33:16

标签: eclipse swt draw2d

我打电话给gc.setAntialias(SWT.ON);但它什么也没做。根据该方法,它应该工作。

Javadoc声明:

  

设置接收器的抗锯齿   参数的值,必须是   SWT.DEFAULT,SWT.OFF或SWT.ON之一。

这对我不起作用,而且我在一个简单的画布上绘画。

3 个答案:

答案 0 :(得分:4)

以下是我在我构建的应用程序中为我工作的,我猜测你何时/如何做到这一点。

所以我创建了一个新的GC,像你一样设置了Antialias,然后用那个gc对象绘制了我需要的东西。关键是将它附加到您将绘制的shell中。

GC gc = new GC(shell);
gc.setAntialias(SWT.ON); 
//then I attach to LightweightSystem for testing.
LightweightSystem lws = new LightweightSystem(shell);

除此之外,请确保在绘制任何内容之前执行此操作。如果您之后必须打电话,可以尝试重新调整或重绘整个空间。

抱歉没有更多信息我不确定到底出了什么问题。

答案 1 :(得分:2)

此外,如果您正在绘制标签,请务必使用gc.setTextAntialias( SWT.ON );

您还可以检查gc.getAdvanced()是否返回true,应该在设置setAntialias()setTextAntialias之后。

除此之外,它非常直接。

答案 2 :(得分:2)

根据derBiggi的回答,您也可以将高级选项设置为true。

gc.setAdvanced(true)