了解Eclipse中的JFace数据绑定,第2部分: 绑定的基础知识

开始之前

关于本系列

使用数据绑定 API 可以将您从必须编写样本同步代码的痛苦中解脱出来。JFace 数据绑定 API 为用户界面 (UI) 提供了这种功能,该功能是用 Standard Widget Toolkit (SWT) 和 JFace 编写的。

“了解 Eclipse 中的 JFace 数据绑定” 系列教程的 第 1 部分 说明了数据绑定框架的用途,介绍了几个流行的 Java GUI 数据绑定框架,并给出了使用数据绑定的优点和缺点。作为该系列的第 2 部分,本教程将介绍基本的 API 组件。第 3 部分将转向介绍高级主题,例如表、转换程序及验证。

关于本教程

本教程说明了使用数据绑定 API 的原因,然后将向您介绍如何使用 JFace 数据绑定 API 的核心组件,而把说明底层如何工作的内容放到了第 3 部分进行介绍。

先决条件

本教程面向拥有一定 Java 编程语言和 Eclipse 使用经验的开发人员,而且必须对 SWT 和 JFace 有一定的基本了解。

系统要求

要运行示例,则必须要有一个 Eclipse 软件开发包 (SDK) 及一台能够运行该软件开发包的计算机。

在域对象和控件之间同步数据

同步需求

桌面应用程序往往都有长期使用的对象,这些对象大都包含用户可视的数据。例如,在人员对象的名字字段中所做的更改通常需要被反映到用户编辑该对象时所在的表单中。这意味着要更新用于显示数据的文本字段小部件。如果更改是在文本字段小部件中发起的,则需要更新人员对象。如果人员对象由于业务原因而发生了更改,则显示更改的小部件也需要改变。

很多小部件,例如表和列表,都有可以简化此过程的模型。更改此模型将自动通知小部件。大多数应用程序数据并不以特定于 SWT 的模型为其形式。例如在使用表的情况下,用于填充表的数据经常是从服务器或数据库中查询到的值的 java.util.List 形式。进一步来考虑更复杂的情况,事实上一些小部件(如文本字段)根本就没有模型;它们只有包含显示数据的小部件所固有的简单属性。

样本同步

两个主要的 Java 小部件工具包 Swing 和 SWT 的小部件都不识别数据。这意味着将由您来决定如何管理同步进程。我们来看下面的示例以帮助您理解其含义。请按照以下步骤执行操作:

打开 Eclipse V3.2 并创建一个新的工作区。

在菜单中选择 File > Import。系统将打开 Eclipse 项目导入向导(参见图 1)。

图 1. Eclipse 项目导入向导

时间: 2024-12-23 04:06:45

了解Eclipse中的JFace数据绑定,第2部分: 绑定的基础知识的相关文章

了解Eclipse中的JFace数据绑定,第3部分: 使用高级功能

开始之前 关于本系列 "了解 Eclipse 中的 JFace 数据绑定" 系列教程的这一部分介绍了 Eclipse V3.2 中附带的新 JFace 数据绑定应用程序编程接口 (API) 的高级功能. 使用数据绑定 API 可以将您从必须编写样本同步代码的痛苦中解脱出来.JFace 数据绑定 API 为用户界面 (UI) 提供了这种功能,该功能是用 Standard Widget Toolkit (SWT) 和 JFace 编写的.系列教程的前一部分介绍了 API 中的基本组件.本部

了解Eclipse中的JFace数据绑定,第1部分: 数据绑定的优缺点

很多流行的 Web 应用程序都有视图层的特性,视图层足够智能可以将请求和应答变量与 HTML 输入标记同步.此过程可以轻松地完成,因为用户输入是通过 Web 应用程序的结构层和 HTTP 来路由的.而另一方面,Java GUI 应用程序经常都不能支持这种特性.无论是用 Standard Widget Toolkit (SWT) 编写还是用 Swing 编写,这些 Java GUI 应用程序的域对象与其 GUI 控件 (通常也称为 组件) 之间通常都没有定义好的路径. 样本(boilerplate

Javascript中eval函数的使用方法与示例_基础知识

定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. 返回值 通过计算 string 得到的值(如果有的话). 说明 该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回.因此请不要为 eval() 函数传递 String 对象来作为参数. 如果试图覆盖 eval

Javascript中的几种继承方式对比分析_基础知识

开篇从'严格'意义上说,javascript并不是一门真正的面向对象语言.这种说法原因一般都是觉得javascript作为一门弱类型语言与类似java或c#之类的强型语言的继承方式有很大的区别,因而默认它就是非主流的面向对象方式,甚至竟有很多书将其描述为'非完全面向对象'语言.其实个人觉得,什么方式并不重要,重要的是是否具有面向对象的思想,说javascript不是面向对象语言的,往往都可能没有深入研究过javascript的继承方式,故特撰此文以供交流. 为何需要利用javascript实现继

在JavaScript中操作数组之map()方法的使用_基础知识

 JavaScript 数组map()方法创建一个新的数组使用调用此数组中的每个元素上所提供的函数的结果.语法 array.map(callback[, thisObject]); 下面是参数的详细信息:     callback : 从当前的元素函数产生新的数组的元素.     thisObject : 对象作为该执行回调时使用 返回值: 返回创建数组兼容性: 这种方法是一个JavaScript扩展到ECMA-262标准;因此它可能不存在在标准的其他实现.为了使它工作,你需要添加下面的脚本代码

浅谈JavaScript的Polymer框架中的事件绑定_基础知识

既然是一套完整的前端框架那就一定有提供事件绑定相关的支持.其实在之前的例子中就使用过事件绑定,只是没有单独系统地介绍过而已. Polymer 的事件思想是对事件处理函数尽可能地都命名并定义到 VM 上,我觉得这个做法是在有意地把 VM 这一层隔离出来. 下面这个例子给按钮和其所在的 Shadow DOM Host 都绑定了个事件,点击按钮后两个事件都会触发. 运行 <script> var Polymer = { dom: 'shadow' }; </script> <bas

HTML代码中标签的全部属性 中文注释说明_基础知识

例:写一段图片HTML代码 <img src="http://localhost/phpwind6/zx/6.jpg" id="imgs" lang="en-us" alt="测试"> 该标签为img的代码中已可以看出已含有了四个属性,包括src id lang alt,加上本身的img标签有5个属性. 那么该img标签在正常的情况下倒底还含有多个属性?(包含对象),我现在为大家一一列出来(以上面那句代码为例,并附

js中不同的height, top的区别对比_基础知识

每次看到js中的 clientHeight(clientTop), offsetHeight(offsetTop),scrollHeight(scrollTop)就头大,根本分不清这几种的区别,然而碰到这些已经不 值一两次了,然后每次都要查看一下各自的区别,才能决定使用哪个. 本篇主要以chrome为准,可能各个浏览器之间还是有一些区别,但很多自己还未真正遇到过,还不是很清楚,等以后碰到了类似的兼容性问题,再记录到这里,这次就chrome浏览器中各个属性的区别做个记录,以方便以后的查看 一 cl

探讨JavaScript中的Rest参数和参数默认值_基础知识

Rest 参数 通常,我们需要创建一个可变参数的函数,可变参数是指函数可以接受任意数量的参数.例如,String.prototype.concat 可以接受任何数量的字符串作为参数.使用 Rest 参数,ES6 为我们提供一种新的方式来创建可变参数的函数. 我们来实现一个示例函数 containsAll,用于检查一个字符串中是否包含某些子字符串.例如,containsAll("banana", "b", "nan") 将返回true,contai