1

我正在编写一个我想使用 Swing 和 SWT 的 GUI 应用程序。最终用户将以某种方式指定应该使用哪个(它不会同时使用两者!)。SWT 是我普遍喜欢的东西,我一直在研究 JFace,但似乎如果我使用它最强大的功能,我会增加 GUI 和模型之间的耦合,并使抽象 GUI 变得更加困难,因此 Swing 可以也用过。

是这样吗?可以在不将 GUI 细节绑定到模型中的情况下使用 JFace,反之亦然吗?

4

2 回答 2

2

据我所知,使用 JFace 查看器可以很好地分离视图和模型。

这里唯一的紧密耦合是实际查看器实现的选择(例如,使用 TableViewer 与 TreeViewer 分别将您的模型绑定到 Table 或 Tree 小部件)。

至于问题的第一部分,表明您出于某种原因希望将您的应用程序与选择的 GUI 框架分离,我建议您看一下UFace 项目

UFace 项目旨在提供您似乎想要的目标——一个可以针对许多 GUI 后端运行的单一 UI 实现(它调用Providers):

在撰写本文时,UFace 项目页面列出了对以下提供程序的支持:

  • JFace/SWT
  • 摇摆
  • GWT

(我也听说过一些关于支持 Qt Jambi 提供程序的工作的传闻)

于 2010-01-13T09:34:50.350 回答
0

你不能动态切换。JFace 调用 SWT。不能要求它改为调用 AWT。

至于 JFace 是否将模型与 GUI 耦合,嗯,没有。它有一组模型接口,但您可以将任何您喜欢的模型粘贴到它们上。如果您的客户希望有朝一日可以选择淘汰 JFace,则由您自行决定。

于 2010-01-01T22:55:30.183 回答