我正在使用 eclipse/windowbuilder pro 编写 JFace 独立应用程序。 Windowbuilder 是一个很好的工具,但我在查找有关此类应用程序的组织结构的信息时遇到了麻烦。

目前,我正在为我的应用程序的主窗口扩展标准 ApplicationWindow 类(在 windowbuilder 示例中是标准的),并为应用程序中的“子窗口”子类化 SWT 组合。我遇到的问题是,当我在 windowbuilder 中以图形方式构建 SWT Composite 子类时,我失去了使用 JFace 操作/数据绑定(bind)的能力。在对标准 SWT 组件进行子类化时使用 SWT 设计器时,无法访问用于添加 JFace 操作的调色板。我已经详细搜索了如何添加此调色板但无济于事(标准 method 失败,因为这不是出现在调色板管理器中的“正常”调色板)。我还尝试将 JFace 操作组件添加到我现有的调色板,但找不到有关如何将抽象类 (Action) 添加到调色板的文档。我知道我可以手动编写所有我想要的代码,但这违背了使用 windowbuilder 的目的。

我真的很想坚持使用标准的 JFace 查看器/ Action 模型,但我不知道应该为我的应用程序中的“子窗口”子类化哪些组件。我已经尝试直接继承 Window 类,但这不会产生对 windowbuilder 的 JFace Actions 调色板的访问。我不确定在什么条件下可以访问调色板(我一直在迭代地删除和添加组件到 ApplicationWindow,我越来越绝望)。我有一些自定义小部件,如果我能解决这个问题,我很乐意为它们编写 JFace 查看器。

那里有 window builder 的粉丝吗?子类化 SWT Composite 是否是制作此应用程序组件的合理/标准方法?编写比单个 ApplicationWindow 更复杂的应用程序的标准是什么?我搜索了高低,但似乎只能找到作为单个应用程序窗口的教程和示例——没有复合。我觉得我缺少一些关于更复杂的 JFace 应用程序结构的关键信息。我想我的目标是 SWT Composite 的 JFace 版本,它允许我通过 windowbuilder 访问 JFace 操作代码生成。

任何解释大型应用程序的标准 JFace 设计的提示和/或阅读 Material 将不胜感激!

最佳答案

我已经与 WBPro 合作了大约 6 到 7 年……我想我们可以就您的问题进行对话。我可能无法完全回答你的问题,但我会尽力而为。因此,首先,对于您的子窗口,您应该使用 JFace Dialogs。您可以从 New>Other>WbPro>JFace>Dialog 创建一个模板,也可以自己创建子类。您还可以使用 TitleAreaDialog,它更酷,并且在顶部有一个标题栏,就像所有 Eclipse 对话框一样。这两个类都在 JFace 中,并且在 WBPro 中可用。

您可以在“设计”选项卡中使用 JFace 小部件和查看器,但不能使用操作。但原因是对话框和子窗口没有工具栏或菜单栏,我认为这就是它们不在调色板中的原因,但是如果您有一个内部小部件的上下文菜单,我认为您应该自己实现。如果你愿意,我可以为你深入挖掘,如果还有什么要解决的,请告诉我。

关于swt - swt 设计器中的 windowbuilder jface 操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9614742/

10-10 16:11