代码之家  ›  专栏  ›  技术社区  ›  andyczerwonka

在SWT中启用消除混叠

  •  2
  • andyczerwonka  · 技术社区  · 15 年前

    我打过电话 gc.setAntialias(SWT.ON); 它什么也不做。根据这种方法,它应该是有效的。

    JavaDoc声明:

    设置接收器的抗混叠 参数的值,必须是 swt.default、swt.off或swt.on之一。

    它对我不起作用,我在一张简单的画布上画画。

    3 回复  |  直到 15 年前
        1
  •  4
  •   Ted Johnson    15 年前

    在我构建的一个应用程序中,以下内容对我很有用,我猜测你何时/如何才能做到这一点。

    所以我创建了一个新的GC,像您一样设置反锯齿,然后用这个GC对象绘制我需要的东西。关键是把它附在你要画的壳上。

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

    除此之外,在画任何东西之前一定要先画。如果你以后必须调用它,可以尝试调用整个空间的重绘或重绘。

    对不起,没有更多的信息,我不知道到底出了什么问题。

        2
  •  2
  •   nanda    15 年前

    按照Derbigi的回答,您还可以强制高级选项为true。

    gc.setAdvanced(true)
    
        3
  •  2
  •   mateuscb    9 年前

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

    你也可以检查 gc.getAdvanced() 返回true,它应该在 setAntialias() setTextAntialias 被设定。

    除此之外,它是非常直接的。

    推荐文章