了解Eclipse中的JFace数据绑定,第2部分: 绑定的基础知识 - 编程入门网
is.person.setFirst(this.firstText.getText());
this.person.setLast(this.lastText.getText());
}
public static void main(String[] args) {
NoBindingExample example = new NoBindingExample();
example.run();
}
public void run() {
this.person = new Person("Larry", "Wall");
Display display = new Display();
Shell shell = new Shell(display);
createControls(shell);
createButtons(shell);
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
了解Eclipse中的JFace数据绑定,第2部分: 绑定的基础知识(4)时间:2011-02-11 IBM Scott Delap查看代码 清单 1 的开头定义了一个遵循 JavaBean 规范的简单的 Person 类。特别地,它为每个属性配备了 getter 和 setter 方法。清单接下来定义了 NoBindingExample 类。主要方法实例化了一个类的实例,并立即委托给 run() 方法。run() 方法负责创建 UI 并将启动显示示例所需的相应的 SWT 结构。 run() 方法首先将创建一个 Shell,然后将调用构建 UI 部件的 createControls() 方法。接下来,它将调用 createButtons() 方法,该方法用于创建三个按钮。每个按钮都配有鼠标侦听程序,该侦听程序将调用针对示例实例的特定方法。 这种设计会带来的问题 数以千计的应用程序都是用类似上述设计的代码编写的。但是,这样做会带来很多问题: Person Bean 最初包含值 Larry Wall。应用程序一开始不会显示该值,因为 Person Bean 在启动时并未与文本字段同步。 必须保持对两个文本字段的引用可以为两个同步方法所用。 必须编写样本同步代码。 确定何时在 Person bean 和文本字段之间同步值是一个人工过程。 即使本例的应用程序不需要配有在 Person bean 和文本字段之间来回同步值的按钮,我们仍然必须分析、编码和维护何时调用同步方法的进程。如果文本字段可以反映 Person bean,并且用 API 来保证数据同步(让您可以更轻松地将精力集中在更紧迫的要求上),情况可能会较为简单些。 数据绑定的奥秘 幸运的是,上一部分中所需的 API 并不是一个梦想。有很多框架可用于与 Java 语言结合使用来解决这个问题。它们通常都被归类到术语 数据绑定 下。数据绑定框架的用途就如其名称隐含的内容一样:它们在两个点之间绑定数据;当一端的数据发生更改时,绑定关系的另一端的数据也会被更新。这就是前面的示例所需要的那类功能。 Eclipse V3.2 将一个临时版本的数据绑定 API 附在了 org.eclipse.jface.databinding 插件中,可以使用该插件开发 SWT 和 JFace 应用程序。未来版本的 Eclipse 可能由于功能增强和重新设计而包含不同版本的 API。这并不会限制当前 API 的有效性,当前 API 稳定而且包括很多功能。本教程的其余部分将使用该 API 来重新设计先前的示例。 导入数据绑定 虽然可以使用二进制版本的 JFace 数据绑定(项目归档文件中的示例现已在 IDE 中运行),但是,在开发过程中将源数据绑定作为一个引用来导入十分有用。可以使用 Eclipse 导入向导来执行此操作,如下所示: 从菜单中选择 File > Import。 选择 Plug-ins and Fragments,如图 5 所示,然后单击 Next。 图 5. 导入已有插件 了解Eclipse中的JFace数据绑定,第2部分: 绑定的基础知识(5)时间:2011-02-11 IBM Scott Delap在下一个屏幕中,将底部的 Import As 选项更改为 Projects with Source Folders,然后再次单击 Next,如图 6 所示。 Figure 6. 将 Import As 选项更改为 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |