【OReilly : Java Swing 】Chapter3

来源:互联网 发布:网络贷款好口子 编辑:程序博客网 时间:2024/04/27 13:27

前言:

          最近闲来无事想试着翻译下OReilly的经典书籍 Swing,这本是第二版的,多日不用英语,快要荒废殆尽,只当是自娱自乐吧。

———————————————————————————————————————————————————————

第三章: Swing组件之基础篇

 

上一章我们展示怎么样用Swing组件去创建一些程序,它是如此简单而令人印象深刻。现在我们要更深入一点,首先,我们介绍一些低层的类,诸如ACtion,GraphicsContext,ChangeEvent,hePropertyChangeEvent,还有HeadlessException异常。剩下的我们将介绍Swing的核心及灵魂:JComponent 类

———————————————————————————————————————————————————————

3.1 理解 动作

 

        Actions是Swing新增流行特性。一个Action允许程序员将一些常用操作和与之相关的属性绑定在一个单独的类里。如果一个应用程序需要从一些复合资源中调用一个特殊的技能,那么这种构造会很有帮助。举个例子,Swing程序员如果创建了一个能够存储数据的Action,这个应用程序能够在你点下文件菜单里的保存子菜单和保存按钮的时候被触发。这两个组件都引用同一个Action对象,也就是保存数据Action。如果这个保存函数因为一些原因失效了,Action也能将自动通知上诉两个组件,从而不再保存数据,并将这个信息返回给用户。

 

编者注:

 

3.1.1  动作 和 容器

 

        像Jmenu, JpopupMenu和JtoolBar之类的Swing容器都可以通过add()方法来添加动作。当一个动作被添加的时候,这些容器自动创建一个GUI组件,并由add()方法返回给用户。比如说,JMenu 或者 JPopupMenu创建和返回JmenuItem组件,JtoolBar创建返回Jbutton组件。然后,动作会通过以下两种方式去匹配新增的GUI组件:如果是属性改变则表现为PropertyChangeListenner,如果是菜单条目和工具台和动作之间的联动则表现为AtionListenner。也就是说,如果用户选择了菜单条目或者按钮,动作里的功能会被激发。如果这个动作失效,他会通过PropertyChangeEvent使Item和Toolbar变为无效和灰色。同样,如果动作的图标和名字改变了,那么菜单和工具太会自动被更新。

 

3.1.2   动作接口

 

        一个动作用来实现它所继承的接口,既然这样,因为Action继承了ActionListenner接口,那么具体实现Action的类就必须提供acitonPerformed()方法。程序员用actionPerformer()方法来实现他想要的功能。比如说,如果你创建了一个保存动作,你应该把你实现保存的代码写在actionPerformed()里面。

 

        当这个动作被添加到像JMenu, JPopupMenu之类的接收容器,容器会以ActionListenner的形式自动地为他创建的GUI组件注册这个动作。因此,如果用户选择了这个组件的话,组件就会激发actionPerformed方法来实现相应功能。

 

        Action接口定义了五个常量:

                 1.default(默认设置),

                 2.Name(动作的名称),

                 3.Short_Description(简要描述动作功能),

                 4.Long_description(具体描述动作功能),

                 5.SMALL_ICON(显示图标,多用于工具台)。

        这些常量用来存储动作的标准属性。动作接口定义了用来标识动作可用与否的布尔值。记住,GUI 组件会为自身添加PropertyChangeListenner。因此,当任意一个动作属性被改变,组件都会被通知并作出相应动作。

 

 

原创粉丝点击