《第15章使用Swing高级组件.ppt》由会员分享,可在线阅读,更多相关《第15章使用Swing高级组件.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第1515章章 使用使用SwingSwing高级组件高级组件除了基本控件之外,除了基本控件之外,Swing还提供了很多高级组件,以帮助还提供了很多高级组件,以帮助程序员创建更加复杂但更加有表现力的应用程序。这些高程序员创建更加复杂但更加有表现力的应用程序。这些高级组件包括可以交互式显示高度格式化信息的控件,如颜级组件包括可以交互式显示高度格式化信息的控件,如颜色选择器、表和树等,也包括非顶层的容器组件和具有特色选择器、表和树等,也包括非顶层的容器组件和具有特殊用途的窗口组件。殊用途的窗口组件。15.1 15.1 交互式显示高度格式化信息控件交互式显示高度格式化信息控件交互式显示高度格式化信息
2、控件是这样一些组件,它们可以交互式显示高度格式化信息控件是这样一些组件,它们可以被用来显示高度格式化的信息,这些信息也可以被用户修被用来显示高度格式化的信息,这些信息也可以被用户修改。改。Swing中这样的组件有中这样的组件有颜色选择器颜色选择器JColorChooser、文件选择器、文件选择器JFileChooser、文本编辑组件、文本编辑组件JEditorPane和和JTextPane、文本区组件、文本区组件JTextArea、表、表组件组件JTable和树组件和树组件JTree。15.1.1 15.1.1 颜色选择器颜色选择器JColorChooserJColorChooserJColo
3、rChooser类代表一个类代表一个颜色选择器(或叫调色颜色选择器(或叫调色板),用户可以从中选板),用户可以从中选择颜色。可以将颜色选择颜色。可以将颜色选择器放在程序择器放在程序GUI中的任中的任何地方。使用何地方。使用JColorChooser的的API还能很容易地弹出包含还能很容易地弹出包含颜色选择器的对话框颜色选择器的对话框(模态或非模态)。创(模态或非模态)。创建一个颜色选择器可以建一个颜色选择器可以使用下面的代码:使用下面的代码:JColorChooser colorChooser=new JColorChooser();15.1.2 15.1.2 文件选择器文件选择器JFileC
4、hooserJFileChooser文件选择器提供了一个用于文件系统导航的文件选择器提供了一个用于文件系统导航的GUI。在文件选择器中,用户。在文件选择器中,用户既可以选择一个文件或目录,也可以输入一个文件或目录的名称。使既可以选择一个文件或目录,也可以输入一个文件或目录的名称。使用用JFileChooser的的API来显示一个包含文件选择器的模态对话框。也来显示一个包含文件选择器的模态对话框。也可以通过添加一个可以通过添加一个JFileChooser的实例到一个容器当中实现一个文件的实例到一个容器当中实现一个文件选择器。选择器。15.1.3 15.1.3 文本编辑组件文本编辑组件JEdito
5、rPaneJEditorPane和和JTextPaneJTextPaneSwing中有两个类支持样式文本:中有两个类支持样式文本:JEditorPane(编辑器窗(编辑器窗格)及其子类格)及其子类JTextPane(文本窗格)。(文本窗格)。JEditorPane类类是是Swing样式文本组件的基础,并提供一种机制为自定义样式文本组件的基础,并提供一种机制为自定义文本格式提供支持。文本格式提供支持。15.1.4 15.1.4 文本区组件文本区组件JTextAreaJTextAreaJTextArea类可以显示多行文本,并且允许用户编辑文本。创建并初始化类可以显示多行文本,并且允许用户编辑文本。
6、创建并初始化JTextArea的代码如下所示。的代码如下所示。JTextArea textArea=new JTextArea(5,20);JScrollPane scrollPane=new JScrollPane(textArea);textArea.setEditable(false);15.1.5 15.1.5 表组件表组件JTableJTable使用使用JTable类,可以以表格的形式显示数据,也允许用户编类,可以以表格的形式显示数据,也允许用户编辑数据。辑数据。JTabel本身并不包含或缓存数据,它只是简单本身并不包含或缓存数据,它只是简单地作为数据的显示视图。地作为数据的显示视图
7、。15.1.6 15.1.6 树组件树组件JTreeJTree使用使用JTree类,可以显示分层级的数据。一个类,可以显示分层级的数据。一个JTree对象并不真正包含数对象并不真正包含数据;它简单地提供数据的一个视图。与任何高级据;它简单地提供数据的一个视图。与任何高级Swing组件一样,树组件一样,树也是通过查询其数据模型来获得数据的。也是通过查询其数据模型来获得数据的。15.2 15.2 非顶层容器控件非顶层容器控件Swing的的非顶层容器控件非顶层容器控件是多用途容器,被用于大多数的是多用途容器,被用于大多数的Swing应用程序。它们可以容纳其他组件,所以称为容器应用程序。它们可以容纳其
8、他组件,所以称为容器控件。非顶层容器控件包括面板组件控件。非顶层容器控件包括面板组件JPanel、滚动面板、滚动面板(滚动窗格)(滚动窗格)JscrollPane、拆分面板(窗格)、拆分面板(窗格)JsplitPane、选项卡面板、选项卡面板JTabbedPane和工具栏和工具栏JToolBar。15.2.1 15.2.1 面板组件面板组件JPanelJPanelJPanel类为轻量级的组件提供通用目的的容器。默认情况下,类为轻量级的组件提供通用目的的容器。默认情况下,JPanel对对象除了自己的背景色之外,不给任何组件添加颜色。不过可以自定义象除了自己的背景色之外,不给任何组件添加颜色。不过
9、可以自定义面板的边框及自定义面板。面板的边框及自定义面板。15.2.2 15.2.2 滚动面板滚动面板JScrollPaneJScrollPaneJScrollPane类为组件提供一个可滚动的视图。创建一个滚类为组件提供一个可滚动的视图。创建一个滚动面板的代码量是非常小的。图显示了一个滚动面板中的动面板的代码量是非常小的。图显示了一个滚动面板中的文本区。因为随着文本的增加,文本区的大小也相应地会文本区。因为随着文本的增加,文本区的大小也相应地会增长,所以要使用滚动视图来查看。滚动窗格会根据需要增长,所以要使用滚动视图来查看。滚动窗格会根据需要自动地创建滚动条、重绘客户区等等。自动地创建滚动条、
10、重绘客户区等等。15.2.3 15.2.3 拆分面板拆分面板JSplitPaneJSplitPaneJSplitPane又称为拆分窗格,它显示两个组件,水平排列或又称为拆分窗格,它显示两个组件,水平排列或上下排列。通过拖动窗格之间的拆分线,可以调节两个窗上下排列。通过拖动窗格之间的拆分线,可以调节两个窗格的大小。还可以通过在拆分窗格中嵌套拆分窗格的方式,格的大小。还可以通过在拆分窗格中嵌套拆分窗格的方式,将屏幕空间分为三个或更多的组件。将屏幕空间分为三个或更多的组件。15.2.4 15.2.4 选项卡面板选项卡面板JTabbedPaneJTabbedPane使用使用JTabbedPane类,可
11、以使多个组件(如面板)共享同类,可以使多个组件(如面板)共享同一个空间。通过选择相应的选项卡标签,用户可以指定显一个空间。通过选择相应的选项卡标签,用户可以指定显示哪一个组件,如图所示。示哪一个组件,如图所示。15.2.5 15.2.5 工具栏工具栏JToolBarJToolBarJToolBar是一个容器组件,用来将许多组件(通常是带图标是一个容器组件,用来将许多组件(通常是带图标的按钮)组织到一行或一列。一般来说,工具栏提供与菜的按钮)组织到一行或一列。一般来说,工具栏提供与菜单中相对应的便捷访问方式。使用工具栏如图所示。单中相对应的便捷访问方式。使用工具栏如图所示。15.3 15.3 特
12、殊用途窗口控件特殊用途窗口控件特殊用途窗口控件包括内部窗体组件特殊用途窗口控件包括内部窗体组件JInternalFrame、层面、层面板板JLayeredPane和根面板和根面板JRootPane。这些特殊用途容这些特殊用途容器在器在UI中扮演重要的角色。但是对于程序员来说,很少直中扮演重要的角色。但是对于程序员来说,很少直接使用这些控件。下面就对这些控件做一简单介绍。接使用这些控件。下面就对这些控件做一简单介绍。15.3.1 15.3.1 内部窗体组件内部窗体组件JInternalFrameJInternalFrame使用使用JInternalFrame类,可以在一个窗口中显示另一个类似类,
13、可以在一个窗口中显示另一个类似JFrame的窗的窗口。通常,内部窗体组件会被添加到一个桌面面板中(口。通常,内部窗体组件会被添加到一个桌面面板中(JDesktopPane对象,是对象,是JLayeredPane的子类,具有管理重叠的内部窗体的的子类,具有管理重叠的内部窗体的API)。)。而相应地,桌面面板被用作而相应地,桌面面板被用作JFrame的内容面板。图显示了一个应用程的内容面板。图显示了一个应用程序的常规的窗体,它具有两个内部窗体。序的常规的窗体,它具有两个内部窗体。15.3.2 15.3.2 层面板层面板JLayeredPaneJLayeredPane层面板是一个层面板是一个Swin
14、g容器组件,为定位组件提供第三维:容器组件,为定位组件提供第三维:Z轴。当添加一轴。当添加一个组件到一个层面板时,使用一个整数指定它的个组件到一个层面板时,使用一个整数指定它的“深度深度”。数值越高,。数值越高,组件在容器中越接近组件在容器中越接近“顶层顶层”位置。如果组件重叠,上层的组件在低位置。如果组件重叠,上层的组件在低层的组件之上被绘制。层的组件之上被绘制。15.3.3 15.3.3 根面板根面板JRootPaneJRootPane一般情况下,不直接创建一般情况下,不直接创建JRootPane对象。相反,当实例化对象。相反,当实例化JInternalFrame或一个顶层或一个顶层Swi
15、ng容器时,如容器时,如JApplet、JDialog和和JFrame时,要获得时,要获得JRootPane对象。对象。1透明面板透明面板2层面板层面板15.4 15.4 在在SwingSwing组件中使用组件中使用HTMLHTML许多许多Swing组件在它们的组件在它们的GUI中显示一个文本字符串。默认情况下,组件中显示一个文本字符串。默认情况下,组件的文本以一种单一的字体和颜色显示,并且都显示在一行上。通过调的文本以一种单一的字体和颜色显示,并且都显示在一行上。通过调用组件的用组件的setFont()和和setForeground()方法,可以设置组件文本的字方法,可以设置组件文本的字体和
16、颜色。体和颜色。15.5 15.5 顶层容器对话框顶层容器对话框JDialogJDialog一个对话框窗口是一个独立的子窗口,在程序的主窗口这外一个对话框窗口是一个独立的子窗口,在程序的主窗口这外显示临时信息。为了方便,很多显示临时信息。为了方便,很多Swing组件类能直接实例组件类能直接实例化并显示对话框。要创建简单的、标准的对话框,使用化并显示对话框。要创建简单的、标准的对话框,使用JOptionPane类。要创建一个自定义对话框,直接使用类。要创建一个自定义对话框,直接使用JDialog类。类。15.5.1 15.5.1 对话框简介对话框简介每一个对话框都依赖于一个每一个对话框都依赖于一
17、个Frame组件。当组件。当Frame被销毁时,被销毁时,所有依赖于它的对话框也都被销毁。当窗体被最小化时,所有依赖于它的对话框也都被销毁。当窗体被最小化时,依赖于它的对话框也从屏幕上消失。当窗体被非最小化时,依赖于它的对话框也从屏幕上消失。当窗体被非最小化时,依赖于它的对话框重新出现在屏幕上。在依赖于它的对话框重新出现在屏幕上。在Swing中,中,JDialog类从类从AWT的的Dialog类继承了这些行为。类继承了这些行为。15.5.2 15.5.2 使用使用JOptionPaneJOptionPane类创建简单对话框类创建简单对话框使用使用JOptionPane类,可以快速创建和定制许多
18、不同类型的对话框。类,可以快速创建和定制许多不同类型的对话框。JOptionPane提供对标准对话框布局的支持,提供相应的提示图标、提供对标准对话框布局的支持,提供相应的提示图标、指定对话框标题和文本,并自定义按钮文本。另外,还可以指定对话指定对话框标题和文本,并自定义按钮文本。另外,还可以指定对话框在屏幕的什么位置出现。框在屏幕的什么位置出现。1showMessageDialog()方法方法2showOptionDialog()方法方法3showConfirmDialog()方法方法4showInputDialog()方法方法15.6 15.6 小结小结本章主要讲解本章主要讲解Swing的高级组件,包括交互式显示高度格式的高级组件,包括交互式显示高度格式化信息控件,如颜色选择器化信息控件,如颜色选择器JColorChooser、文件选择、文件选择器器JFileChooser、表组件、表组件JTable和树组件和树组件JTree等。另等。另外,还介绍了非顶层容器控件及特殊用途窗口控件。外,还介绍了非顶层容器控件及特殊用途窗口控件。最后最后两节介绍了如何两节介绍了如何在在Swing组件中使用组件中使用HTML以格式化文本,以格式化文本,以及以及Swing提供的各种简单而实用的对话框。提供的各种简单而实用的对话框。