卷1:第22章 Violet

2018-02-24 15:55 更新

作者:Cay Horstmann
译者:Xiao Jia(贾枭)

2002 年,我写了一本关于面向对象设计与模式的本科教材 [Hor05]。和很多书一样,这本书也源于我对经典课程的沮丧。一般来说,计算机科学专业的学生,会在他们的第一门编程课上,学习如何设计一个独立的类。而此后,直到在高年级的软件工程课中,他们才在面向对象设计方面接受更多的训练。在这门课程中,学生在几个星期内匆忙地学习 UML 和设计模式,最终也只是走马观花。我写的这本书是为一个学期的课程准备的,学生需要具备一些 Java 编程和基本数据结构的知识(通常这些知识来自基于 Java 的 CS1 或 CS2 课程安排)。这本书在学生所熟悉的上下文中涵盖了面向对象设计原则和设计模式的内容。比如用 Swing 里面的 JScrollPane 类来介绍修饰模式(Decorator Pattern),目的是希望这个例子比经典的 Java 流的例子①更容易让人记住。

① 译者注:如 FileInputStream 和 BufferedInputStream 等。

Ald02] 和 JUNG ❷。然而,这些框架都相当复杂,提供的也只是“用来绘制图形”的框架,而不是“用来绘制图形的应用程序”的框架。

❷ http://jung.sourceforge.net

22.3. JavaBeans 属性的使用

在客户端 Java 的鼎盛时期,人们制定了 JavaBeans 规范,用来给在可视化 GUI 设计环境里编辑 GUI 组件提供可移植的机制。其目的是为了让一个第三方的 GUI 组件可以放在任意的 GUI 设计器中,并且它的属性可以像按钮、文本等标准组件一样进行设置。

Java 语言本身没有对属性的原生支持。JavaBeans 属性可以从成对的 getter 和 setter 方法中发现出来,或者通过相应的 BeanInfo 类指定。进一步地,可以指定 属性编辑器 来可视化地编辑属性的值。JDK 甚至包含了一些基本的属性编辑器,比如用来编辑 java.awt.Color 类型的编辑器。

Violet 框架充分利用了 JavaBeans 规范。比如,CircleNode 类可以通过提供如下两个方法,来暴露出颜色这一属性:

public void setColor(Color newValue)
public Color getColor()

现在,不需要任何额外的工作,这个图形编辑器就能编辑圆圈节点的颜色了(参见图 22.5)。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号