Swing包是Swing提供的***包,它包含将近100个类和25个接口。几乎所有的Swing组件都在Swing包中,只有JTableHeader和JTextComponent是例外,它们分别在Swing.table包和Swing.text包中。
Swing.border包中含有数个在轻量Swing组件的边衬中画边框的类。border包由一个Border接口、一个AbstractBorder类和AbstractBorder的许多具体扩展组成。
Swing.event包中定义了事件和事件监听器类,Swing.event包与AWT的event包类似。awt.event和 Swing.event都包含事件类和监听器接口,它们分别响应由AWT组件和Swing组件激发的事件。例如,当在树组件中需要节点扩展(或折叠)的通知时,则要实现Swing的TreeExpansionListener接口,并把一个TreeExpansionEvent实例传送给 TreeExpansionListener接口中定义的方法。TreeExpansionListener和TreeExpansionEvent都是在Swing.event包中定义的。
Swing.pending包包括仍没有完全实现的Swing组件。在Swing1.1 FCS中,pending包包含选择器(日期、货币选择器)计算器、弹出式按钮等等。pending包中的组件最终会放到Swing包中。虽然Swing的表格组件(JTable)在Swing包中,但它的支持类却在Swing.table包中。表格模型、单元绘制器和编辑器等都在Swing.table包中。与JTable类一样,Swing的树类JTree(用于按层次组织数据的结构组件)也在Swing包中,而它的支持类却在Swing.tree包中。Swing.tree包提供树模型、树节点、树单元编辑器和绘制器等支持类。
Swing有四个用于显示和编辑文档的包:Swing.text、Swing.text.html、Swing.text.html.parser 和Swing.text.rtf。Swing.text包为Swing的文档模型提供了所有必须的下层构件。包括用于文档、元素、加字符、增亮、编辑工具包等的类和接口。Swing.text.html和Swing.text.rtf包是Swing最小的两个包:它们分别提供用于实现HTML(超文本标记语言)和rtf(多文本格式)文档编辑器的编辑器工具包。
Swing.text.html.parser包中含有分析html文件的支持类。
Swing.undo包为实现取消操作提供支持。
Swing.plaf包中的类形成了Swing插入式界面样式的UI代表部分的基础。UI代表为它们的相关组件实现界面模式。
Swing.plaf包中的大多数类定义UI资源或扩展Swing.ComponentUI类。Swing.ComponentUI类定义所有UI 代表的公共行为。在Swing.plaf包中的UI代表类(即名字以UI结尾的类)通常为特定的组件定义附加的抽象方法。例如,Swing.plaf.ButtonUI类扩展Swing.ComponentUI类并添加了抽象方法getDefaultMargin(),该方法返回按钮边框与按钮内容之间的间距。
Swing.plaf.basic包扩展在Swing.plaf包中定义的类,并且实现所有标准Swing界面样式共有的特性。例如:Swing.plaf.basic.BasicButtonUI类提供了Swing.ComponentUI类和 Swing.plaf.ButtonUI类定义的一些方法的缺省实现。BasicButtonUI类还为paint等方法提供了多个不同的实现 (paint方法绘制按钮的文本和图标)。BasicButtonUI还以无操作形式实现其他与界面样式有关的方法,如 paintButtonPressed()方法。这些方法将被特定的界面样式扩展所重载。metal和motif包实现相应界面样式的 UI代表类。通常,UI代表类扩展Swing.plaf.basic包中的类。例如,metal.ButtonUI类重载 Swing.plaf.basic.ButtonUI类中的paintButtonPressed方法的无操作实现。
Swing.plaf.multi包支持界面样式复用。界面样式复用允许多个UI代表与一个组件相关联。例如。一个按钮UI代表可能同时与一个视觉UI代表和一个音频UI代表相关联,这样,当这个按钮被激活时,不难能产生可视的反馈信息,还能播放一个声音。UI复用的主要用途是使组件更具可访问性。
Swing还提供了其他两种界面样式实现,即mactintosh和Organic的界面样式。
【编辑推荐】