如前所述,Swing包括250多个类,其中有些是UI组件,有些是支持类。为了把UI组件和支持类区分开,Swing组件的名字以J开头。表1-1列出了Swing提供的J组件。用斜体字表示的组件是AWT组件的替代组件。
Swing UI组件 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
组件类 描述
─────────────────────────────────
JApplet Java.applet.Applet类的扩展,它含有JRootPane的一个实例
JButton 能显示文本和图形的按钮,它是AWT按钮组件的替代组件
JCheckBox 能显示文本和图形的复选框,它是AWT选择组件的替代组件
JCheckBoxMenuItem 一个复选框菜单项,它是AWT的复选框菜单项组件的替代组件
JComboBox 带下拉列表的文本框,它是AWT选择组件的替代组件
JComponent 所有轻量J组件的基类
JDesktopPane 内部窗体的容器
JDialog Swing对话框的基类,它扩展了AWT Dialot类
JEditorPane 用于编辑文本的文本窗格
JFrame 扩展java.awt.Frame的外部窗体
JInternalFrame 在JDesktopPane中出现的内部窗体
JLabel 可显示文本和图标的标签,它是AWT标签组件的替代组件
JLayeredPane 能够在不同层上显示组件的容器
JList 显示选项列表的组件,它是AWT列表组件的替代组件
JMenu 菜单条中显示的一个菜单,它是AWT菜单组件的替代组件
JMenuBar 用于显示菜单的菜单条,它是AWT菜单条组件的替代组件
JMenuItem 菜单项,它是AWT菜单项组件的替代组件
JOptionPane 显示标准的对话框,如:消息和问题对话框
JPanel 通用容器,它是AWT面板和画布组件的替代组件
JPasswordfield JTextField的扩展,使输入的字符不可见
JPopupMenu 弹出式菜单,它是AWT弹出式菜单组件的替代组件
JProgressBar 进度指示器
JRadioButton 单选按钮,它是AWT复选框组件的替代组件
JRootPane 顶层容器,它包含一个玻璃窗格,一个层窗格,一个内容窗格和一个可选的菜单条
JScrollBar 滚动条,它是AWT滚动条组件的替代组件
JScrollPane 滚动窗格,它是AWT滚动窗格组件的替代组件
JSeparator 水平或垂直分隔条
JSlider 滑杆
JSplitPane 有两个分隔区的容器,这两个分隔区可以水平排列或者垂直排列且分隔区的大小能自动调整
JTabbedPane 带选项卡的窗格
JTable 表格
JTableHeader 表格头
JTextArea 用于输入多行文本的文本域,它是AWT文本域组件的替代组件
JTestComponent 文本组件的基类,它替代AWT的TextComponent类
JTextField 单行文本域,它替代AWT的单行文本域组件
JTextPane 简单的文本编辑器
JToggleButton 两种状态的按钮,它是JCheckBox和JRadioButton组件的基类
JToolBar 工具条
JToolTip 当光标停留在一个组件上时,该组件上显示的一行文字
JTree 用于按钮层次组织数据的结构控件
JViesport 用于浏览可滚动组件的视口
JWindow 外部窗口,它是java.awt.Window的扩展
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
注:斜体字表示的是AWT的替代组件
插入式界面模式 Swing支持插入式界面样式,界面模式的基础是“模型-视图-控制器”体系结构的变体。图1-3图解说明了在不同的界面样式下运行的小应用程序。
修改小应用程序或应用程序的界面样式不需要修改程序代码,通过把$ JDK_HOME/lib目录下的swing.properties文件中的swing.defaultlaf属性设置为所需要的界面样式类型,就可以在运行时刻设置缺省的界面样式。下面是swing.properties文件的一个例子,它通过指定defaultlaf属性来设置缺省的界面样式:
# swing.properties example file. Lines that begin with '#' are
# comments.
# The Mac look and feel is specifed as the default look and
# feel below. If no look and feel is specifed.then the default
# look and feel (metal) is used.
# the next line specifies which look and feels are installed.
swing.installedlafts=metal,motif,windows,mac
# default set to Mac look and feel
swing.defaultlaf=javax.swing.plaf.mac.MacLookAndFeel
# swing.defaultlaf=javax.swing.plaf.windows.WindowsLookAndFeel
# swing.defaultlaf=javax.swing.plaf.motif.MotifLookAndFeel
在“插入式界面样式”中介绍了插入式界面样式的Swing实现。