2

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

Javadoc 指出:

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

它不适合我,我在一个简单的画布上绘画。

4

3 回答 3

5

以下内容在我构建的应用程序中对我有用,并且我猜测您何时/如何必须这样做。

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

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

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

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

于 2009-11-05T04:50:12.633 回答
2

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

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

除此之外,它非常简单。

于 2009-11-10T14:12:21.203 回答
2

按照 derBiggi 的回答,您还可以强制将高级选项设置为 true。

gc.setAdvanced(true)
于 2010-01-13T10:07:35.883 回答