Swing包概览
Swing由许多包组成,下表列出了这些包
Swing包
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
包
描述
─────────────────────────────────
com.sun.java.swing.plaf.motif 用户界面代表类,它们实现Motif界面样式
com.sun.java.swing.plaf.windows 用户界面代表类,它们实现Windows界面样式
javax.swing Swing组件和实用工具
javax.swing.border Swing轻量组件的边框
javax.swing.colorchooser JColorChooser的支持类/接口
javax.swing.event 事件和侦听器类
javax.swing.filechooser JFileChooser的支持类/接口
javax.swing.pending 未完全实现的Swing组件
javax.swing.plaf 抽象类,它定义UI代表的行为
javax.swing.plaf.basic 实现所有标准界面样式公共功能的基类
javax.swing.plaf.metal 用户界面代表类,它们实现Metal界面样式
javax.swing.table JTable组件的支持类
javax.swing.text 支持文档的显示和编辑
javax.swing.text.html 支持显示和编辑HTML文件
javax.swing.text.html.parser html文件的分析器类
javax.swing.text.rtf 支持显示和编辑RTF文件
javax.swing.tree JTree组件的支持类
javax.swing.undo 支持取消操作
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
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的界面样式。