JavaSwing图形界面开发(第3章)_第1页
JavaSwing图形界面开发(第3章)_第2页
JavaSwing图形界面开发(第3章)_第3页
JavaSwing图形界面开发(第3章)_第4页
JavaSwing图形界面开发(第3章)_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章章Java Swing组件基础组件基础2-用来构成一个用来构成一个图形化界面图形化界面的的“各种元素各种元素”。如:如:按钮按钮、标签标签、树树、表格表格以及以及框架框架等。等。 且每个组件又会拥有且每个组件又会拥有不同形态不同形态( (以满足不同用户需要以满足不同用户需要) ),是构成图形化界面最基本的元素。是构成图形化界面最基本的元素。Java SwingJava Swing组件组件3目的目的:了解整个:了解整个Java SwingJava Swing组件类的框架。组件类的框架。主要介绍主要介绍Java SwingJava Swing组件的一些组件的一些基础知识基础知识,包括:,包

2、括: SwingSwing组件类的继承组件类的继承 顶层类的结构顶层类的结构 顶层容器类的使用顶层容器类的使用 内容面板的使用内容面板的使用 如何在顶层容器中添加菜单栏如何在顶层容器中添加菜单栏 JComponentJComponent类的相关知识类的相关知识4回顾:回顾:AWTAWT组件类组件类的层次的层次( (继承继承) )结构结构53.1 Swing3.1 Swing组件类的层次组件类的层次 6从以上结构图可知,从以上结构图可知,SwingSwing组件类可分成组件类可分成两种类型两种类型: JComponentJComponent类类 WindowWindow类类其中:其中: Wind

3、ow Window组件类组件类-包括一些包括一些“可独立显示可独立显示”的组件。的组件。 JComponent JComponent组件类组件类-包括一些包括一些“不能独立显示不能独立显示”的组的组件。件。简要说明:简要说明:7 可独立显示的组件可独立显示的组件 当运行一个程序时,这个组件当运行一个程序时,这个组件无须托付无须托付在其它组件上就可在其它组件上就可以显示,即能够直接显示出来。以显示,即能够直接显示出来。 如:如:“JFrameJFrame类类”,无须依靠任何其它组件即可独立显示,无须依靠任何其它组件即可独立显示。 不可独立显示的组件不可独立显示的组件 必须依靠必须依靠可独立显示的

4、组件才能显示。可独立显示的组件才能显示。 如:如:“文本框组件、按钮组件文本框组件、按钮组件”必须依托在必须依托在JFrameJFrame框架组框架组件上才能显示出来。件上才能显示出来。8“Javax.swingJavax.swing包包”中的中的SwingSwing组件共有组件共有三种类型三种类型: 顶层顶层组件组件 中间中间组件组件 基本基本组件组件 顶层组件顶层组件-又被称为又被称为“顶层容器顶层容器”; 中间组件中间组件-又分为又分为“中间容器中间容器”和和“特殊中间组件特殊中间组件”。按功能上划分按功能上划分910各组件类型含义各组件类型含义1 1、顶层容器、顶层容器 如:如:JFr

5、ameJFrame、JAppletJApplet、JDialogJDialog、JWindowJWindow; 可理解为可理解为“WindowWindow”组件,指组件,指能够独立显示能够独立显示的组件。的组件。2 2、中间容器、中间容器 如:如:JPanelJPanel、JScrollPaneJScrollPane、JSplitPaneJSplitPane、JToolBarJToolBar; 指那些可充当载体,但也指那些可充当载体,但也不能独立显示不能独立显示的组件。的组件。 即可将一些基本控件放在其中,但却不能独立显示,即可将一些基本控件放在其中,但却不能独立显示, 必须要依托在顶层容器内

6、方能显示。必须要依托在顶层容器内方能显示。 113 3、特殊容器、特殊容器 如:如:JInternalFrameJInternalFrame、JLayeredPaneJLayeredPane、JRootPaneJRootPane 作为一种中间容器类,是作为一种中间容器类,是GUIGUI上起上起特殊作用特殊作用的中间层,只的中间层,只是在图形上更能起到是在图形上更能起到“美化美化”和和“专业化专业化”的作用。的作用。4 4、基本组件、基本组件 如:如:JButtonJButton、JComboBoxJComboBox、JListJList、JMenuJMenu、JSliderJSlider、JT

7、extFieldJTextField。 主要用于实现人机交互的组件。指那些只能依托在中间主要用于实现人机交互的组件。指那些只能依托在中间容器上才能被显示的组件,而容器上才能被显示的组件,而不能独立存在不能独立存在。12“基本组件基本组件”程序示程序示例:例:13运行结果:运行结果:? ?14说明:说明:运行结果没有任何显示。运行结果没有任何显示。原因:原因:“基本组件基本组件”必须必须依托在依托在中间容器中,并让中间容中间容器中,并让中间容器器 依托在依托在顶层容器内才能显示出来。顶层容器内才能显示出来。15程序修改:程序修改:16运行结果:运行结果:说明:说明:上述上述“修改程序修改程序”可

8、将基本组件显示出来,从而可将基本组件显示出来,从而也也 证明了证明了基本组件是不能独立显示的组件基本组件是不能独立显示的组件。17FrameFramePanePaneButtonButton顶层容器顶层容器中间容器中间容器( (内容面板内容面板)基本组件叠放层次示意图:基本组件叠放层次示意图:183.2 Window3.2 Window类类上节介绍了顶层容器类的基本概念。上节介绍了顶层容器类的基本概念。本节将介绍有关更深入、实用的知识。本节将介绍有关更深入、实用的知识。如:如:怎样使用顶层容器类;怎样使用顶层容器类; 顶层容器类的种类;顶层容器类的种类; 顶层容器类所继承下来的层次等。顶层容器

9、类所继承下来的层次等。 193.2.1 3.2.1 顶层容器类和包含层次顶层容器类和包含层次问题:问题:使用使用JavaJava进行图形编程时,组件被绘制在哪里?进行图形编程时,组件被绘制在哪里?解决:解决:首先需要一个能提供图形绘制的容器首先需要一个能提供图形绘制的容器-“顶层容器顶层容器”。(Desktop)(Desktop) 顶层容器是进行顶层容器是进行“图形编程图形编程”的基础,的基础,“一切图形化的东西一切图形化的东西”都都必必须包含须包含在顶层容器中。在顶层容器中。(也可将其想象成一个窗口)(也可将其想象成一个窗口) Swing Swing中主要有中主要有三种三种可以使用的顶层容器

10、:可以使用的顶层容器: JFrameJFrame-用来设计类似于用来设计类似于WindowsWindows系统中窗口形式的应用程序;系统中窗口形式的应用程序; JDialogJDialog-和和JFrameJFrame类似,只是类似,只是JDialogJDialog常用来设计对话框;常用来设计对话框; JAppletJApplet-用来设计可以嵌入在网页中的用来设计可以嵌入在网页中的JavaJava小程序。小程序。20对顶层容器类的理解:对顶层容器类的理解: 三种顶层容器均可三种顶层容器均可独立显示独立显示 在实际开发中,通常作为一个图形界面的在实际开发中,通常作为一个图形界面的最顶层最顶层窗

11、口;窗口; SwingSwing图形界面图形界面至少需要至少需要有一个顶层容器有一个顶层容器 容器与其所包含的组件,形成了容器与其所包含的组件,形成了“树状包含层次结构树状包含层次结构”,顶层容器就,顶层容器就是这个层次结构的是这个层次结构的“根根”。 每个顶层容器都有一个每个顶层容器都有一个内容面板内容面板 即即中间容器类中间容器类组件,可包含组件,可包含( (承载承载) )界面中所需要的各种基本组件。界面中所需要的各种基本组件。 在顶层容器中可添加在顶层容器中可添加菜单组件菜单组件 菜单组件一般放在顶层容器中,和菜单组件一般放在顶层容器中,和内容面板是并行的内容面板是并行的。即顶层容器可。

12、即顶层容器可以以同时包含同时包含菜单组件和内容面板。菜单组件和内容面板。21实际开发中实际开发中- 大多数大多数JavaJava程序都使用程序都使用“JFrameJFrame”组件对象作为顶层容器组件对象作为顶层容器。当然。当然“JDialogJDialog”和和“JAppletJApplet”也可以作为顶层窗口,只不过也可以作为顶层窗口,只不过JDialogJDialog一般作为弹出窗口使用,而一般作为弹出窗口使用,而JAppletJApplet一般作为嵌在网页一般作为嵌在网页中的小程序的框架使用。中的小程序的框架使用。 大多数图形界面的顶层容器仍使用大多数图形界面的顶层容器仍使用JFram

13、eJFrame作为程序框架。作为程序框架。22JFrameJFrame作为顶层窗口示意图作为顶层窗口示意图 23首先首先-创建一个顶层容器创建一个顶层容器JFrameJFrame;其次其次-创建一个内容面板或中间容器创建一个内容面板或中间容器JPanelJPanel; (也可以创建一个菜单组件(也可以创建一个菜单组件JMenuJMenu)最后最后-将所需要的基本组件将所需要的基本组件JComponentJComponent,按照一定的布,按照一定的布 局方式,添加到内容面板中,即可形成一个图形局方式,添加到内容面板中,即可形成一个图形 界面。界面。设计一个图形界面的步骤:设计一个图形界面的步骤

14、:243.2.2 3.2.2 在顶层容器中添加组件在顶层容器中添加组件 与与AWTAWT组件不同,组件不同,SwingSwing基本组件基本组件不能直接添加不能直接添加到顶层容到顶层容器中,而必须添加到一个与器中,而必须添加到一个与SwingSwing顶层容器相关联的顶层容器相关联的“内容面内容面板板(ContentPane)(ContentPane)”上。上。 内容面板内容面板实际上是一个实际上是一个中间组件中间组件( (容器容器) )。( (轻量组件轻量组件) )基本规则:基本规则: 须创建一个与须创建一个与顶层容器顶层容器相联系相联系的的内容面板内容面板; 避免使用非避免使用非Swing

15、Swing的重量级组件。的重量级组件。25在在JFrameJFrame顶层容器中添加中间组件的方法顶层容器中添加中间组件的方法方法一方法一:用:用getContentPane()getContentPane()方法,获得方法,获得JFrameJFrame的内容面板的内容面板, , 再在这个内容面板中添加组件,方法为:再在这个内容面板中添加组件,方法为: frame.getContentPane().add(childComponent)frame.getContentPane().add(childComponent)方法二方法二:首先建立一个:首先建立一个JpanelJpanel或或JDes

16、ktopPaneJDesktopPane之类的之类的中间容中间容 器器,将组件添加到容器中,然后再用,将组件添加到容器中,然后再用setContentPane()setContentPane() 方法将方法将该中间容器该中间容器设置为设置为JFrameJFrame的内容面板的内容面板。 2627在顶层容器中添加内容面板程序示例:在顶层容器中添加内容面板程序示例: 28程序运行结果:程序运行结果: 图图3.5 3.5 添加内容面板测试程序运行结果添加内容面板测试程序运行结果29在内容面板中添加普通组件示例程序:在内容面板中添加普通组件示例程序: 30程序运行结果:程序运行结果: 图图3.6 3.

17、6 在内容面板中添加普通组件在内容面板中添加普通组件 313.2.3 3.2.3 在顶层容器中添加菜单栏在顶层容器中添加菜单栏 32程序运行结果:程序运行结果: 图图3.7 3.7 在顶层容器中添加菜单在顶层容器中添加菜单图图3.8 3.8 菜单项展开菜单项展开33在菜单中的空白处是否能添加基本组件呢?在菜单中的空白处是否能添加基本组件呢? 34程序运行结果:程序运行结果: 图图3.9 3.9 组件添加到菜单的顶层容器中组件添加到菜单的顶层容器中说明:主要是在顶层容器中,使用说明:主要是在顶层容器中,使用setJMenuBar()setJMenuBar()方法方法嵌入菜单条,嵌入菜单条, 使用

18、使用setContentPane()setContentPane()嵌入按钮组件到中间容器。嵌入按钮组件到中间容器。 按照此方式,即可形成一个完整的应用程序界面。按照此方式,即可形成一个完整的应用程序界面。353.3 JComponent3.3 JComponent类类36关于关于JComponentJComponent类的说明类的说明 JComponentJComponent类是所有类是所有“轻量组件轻量组件”的的父类父类。 上述所列,仅为上述所列,仅为JComponentJComponent类的一些类的一些常用子类常用子类。 所有继承所有继承JComponentJComponent类的组件

19、,都属于类的组件,都属于基本组件类基本组件类, 只能依赖只能依赖中间容器存在中间容器存在( (显示显示) )。37JComponentJComponent类的特性(类的特性(9 9大显著特性)大显著特性) 38功能功能1 1:Tool tipsTool tips-工具提示功能工具提示功能 通过在通过在“setToolTipTextsetToolTipText方法方法”中中指定字符串指定字符串,为一个组件提供帮助,为一个组件提供帮助。 即即,当鼠标停留在组件上时,指定的,当鼠标停留在组件上时,指定的“字符串字符串”将出现在该组件附近将出现在该组件附近。39程序运行结果:程序运行结果: 图图3.1

20、1 3.11 工具提示程序运行工具提示程序运行40功能功能2 2:绘画和边框绘画和边框 使用使用“setBordersetBorder方法方法”或或“BorderFactoryBorderFactory类类”创建创建SwingSwing所提供的所提供的绝大多数边框。绝大多数边框。41程序运行结果:程序运行结果: 图图3.12 3.12 绘制按钮边框绘制按钮边框42说明:说明: 边界由边界由“BorderFactory.creatBorderFactory.creatBorder()Border()”返回,其类型为返回,其类型为BorderBorder。常用边界:常用边界: 黑线:黑线:Bord

21、erFactory.createLineBorder(Color.black)BorderFactory.createLineBorder(Color.black) 凸起边界:凸起边界:BorderFactory.createEtchedBorder(EtchedBorder.RAISED)BorderFactory.createEtchedBorder(EtchedBorder.RAISED) 凹下边界:凹下边界:BorderFactory.createEtchedBorder(EtchedBorder.LOWERED)BorderFactory.createEtchedBorder(Etc

22、hedBorder.LOWERED) 凸起:凸起:Border raisedBevel=BorderFactory.createRaisedBevelBorder()Border raisedBevel=BorderFactory.createRaisedBevelBorder() 凹下:凹下:Border LoweredBevel=BorderFactory.createLoweredBevelBorder()Border LoweredBevel=BorderFactory.createLoweredBevelBorder() 加粗默认线:加粗默认线:BorderFactory.creat

23、eCompoundBorder(raisedBevel,loweredBevel)BorderFactory.createCompoundBorder(raisedBevel,loweredBevel)43功能功能3 3:可插入的观感器可插入的观感器 可可“定制桌面、更新颜色方案,使系统适应用户的习惯和需要定制桌面、更新颜色方案,使系统适应用户的习惯和需要”; 使界面具有不同的风格;使界面具有不同的风格; SwingSwing提供一些已封装的观感,如提供一些已封装的观感,如默认默认、MotifMotif和和WindowsWindows的的L&FL&F。说明:说明: 当程序未设置外观感觉时,系统必须确定使用哪种外观感觉。当程序未设置外观感觉时,系统必须确定使用哪种外观感觉。 首先将检查程序代码中是否指定了一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论