哪个具有更快的图形性能:SWT 还是 Java2D?
在 MacOSX 上,SWT 的图形是否通过 Quartz Extreme,而后者又使用硬件加速的 OpenGL 进行渲染?
我不是指本机 UI 控件,而是询问自定义 2D 图形渲染,如文本、线条、曲线和多边形。
Java Swing 和 SWT 采用相反的方法。
Java Swing 使用 Java2D 来绘制它的小部件和自定义绘图,这是一个跨平台的图形 api,它抽象了底层平台的图形 api。现在 Java2D 的性能取决于平台的 Native API 的性能和效率。
SWT 使用平台的本机图形 API 进行自定义绘图,并使用平台的本机 GUI API(如果存在)来绘制其小部件。现在要注意的一点是,对于大多数平台,GUI API 本身使用平台的图形 API 来绘制小部件。
如您所见,最终都依赖于平台的图形 API。因此,两者都提供或多或少相同的性能和速度。
有一些例外情况可能会或可能不会影响性能。
我理论上,SWT 应该更快,因为它直接使用本机 UI 实现。
但在实践中,这一切都取决于每个平台上的 SWT 和 SWING 实现。
以我的经验,SWT 在 Windows 上更快,但在 Mac OS X 上并不快。