我目前正在阅读有关SWT的内容。经常会写到,作为一个SWT应用程序的Eclipse看起来像主机平台或操作系统的标准GUI。但我不这么认为。至少在Windows下,Eclipse视图的选项卡看起来并不像标准的Windows选项卡。 为什么会这样呢? 以前有过不同吗? 其他SWT应用程序呢?
它真正提供了尽可能本地化的外观和感觉。在某些平台上,您无法找到SWT中所有控件的本地版本,然后必须进行仿真。关于“选项卡控件”,SWT确实支持Win32的标准选项卡控件(当您在OSX上运行它时,您将看到一个标准的OSX选项卡控件,即蓝色),但是Eclipse创建了一个比您在Eclipse GUI中看到的更加灵活的新控件。这绝不是Eclipse特有的事情,您会看到Microsoft为Office开发扩展控件,并且几乎每个软件中都有非标准版本的控件。可以争论是否值得创建一个与用户习惯不同的控件,但在选项卡控件的情况下,将标准选项卡控件扩展到具有eclipse使用的所有功能的程度将产生同样的非标准感。在我看来,创建一些根本不假装具有标准外观和感觉,而是在您可以运行eclipse的每个平台上都完全相同的内容可能会更少令人困惑。
据我所知,SWT项目主要是由Eclipse项目的需求推动的 - Eclipse的目标是开发自己独特的外观,至少在选项卡方面是这样。Eclipse可能是唯一使用SWT的值得注意的应用程序;除了Eclipse和Eclipse插件之外,SWT在与Swing的竞争中大多数时间都失败了。编辑:我不确定为什么会被这么多人踩;这里文章很好地概括了我的论点的核心。关于“Swing有点过时”的评论,我并不这么认为。在我看来,它们基本上说Swing是成熟的GUI框架,将得到支持,但他们不希望引入任何重大的发展(实际上,Swing和SWT都没有引入任何重大功能)。它仍然是官方和最广泛使用的Java GUI框架。此外,这个趋势图也说明了很多。 :)