在转向Swing时,有经验的Java SWT程序员应该注意哪些主要内容?

可能遇到的主要差异是什么? 应用程序设计有何重大差异? 线程模型? 你构建GUI的方式是什么? SWT中没有Swing的任何function?

我在Swing和SWT之间的经验很少有发现

  • 渲染Swing有点慢(我的经验)并且使用更多的内存
  • 原生外观可能只是部分(取决于所选择的look’n’feel)
  • 大多数Swing组件以某种方式实现MVC模式 (因此您不必进行自己的数据绑定)
  • 可以对组件进行子类化,并在必须更改某个组件的行为时使用它(因此经常使用它)
  • Swing发送程序生成的事件 (我讨厌这种行为;])
  • 在Swing中,您不必调用(a)syncExec()方法 (您不必关心在SWT中更新GUI的哪个线程,但请务必阅读Swing线程策略(页面末尾) )和Swing中的并发 )
  • Swing非常gar(与SWT相比)
  • 没有更多dispose()方法;]
  • Swing在容器中有标准的布局管理器(参见BorderLayout )并且基础上有不同的布局管理器 (使用MigLayout,它也适用于Swing和SWT,没有竞争对手)
  • 您不必在创建组件实例时知道您的父级,但您必须在父级(容器)上使用.add(组件c)方法
  • Swing不依赖于平台 (不再为每个平台和x32 ​​/ x64构建多个版本)
  • Swing有自己的bug (因为其他技术,它是不可避免的)