最新优质课件-第9章-GUI图形用户界面.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《最新优质课件-第9章-GUI图形用户界面.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 优质 课件 GUI 图形 用户界面
- 资源描述:
-
1、第第9章章 GUI图形用户图形用户界面界面李慧芬李慧芬B1-308B1-308教学目标教学目标u了解了解Swing的体系结构及相关概念的体系结构及相关概念u掌握掌握Swing组件的特性和分类,了解使用组件的特性和分类,了解使用Swing开开发发GUI程序的步骤程序的步骤u掌握常用容器的分类,掌握掌握常用容器的分类,掌握JFrame、Jpanel的构造的构造方法和常用方法方法和常用方法u掌握常用掌握常用Swing组件的构造方法和常用方法组件的构造方法和常用方法u了解了解GUI布局管理器的分类及特点布局管理器的分类及特点u了解事件处理模型的基本概念,掌握事件处理的基了解事件处理模型的基本概念,掌握
2、事件处理的基本步骤。本步骤。本章目录本章目录u9.1 Swing概述概述u9.2 Swing容器容器 u9.3 常用常用Swing组件组件 u9.4 GUI布局管理器布局管理器u9.5 事件处理模型事件处理模型 9.1 Swing概述概述uGUI(Graphic User Interface):用户与计算机之):用户与计算机之间交互的图形化操作界面,又称为图形用户接口间交互的图形化操作界面,又称为图形用户接口uJava语言提供两个处理图形用户界面的类库:语言提供两个处理图形用户界面的类库:java.awt包:包:Abstract Window ToolKit 抽象窗口工具包抽象窗口工具包 ja
3、va.swing包:包:在在AWT基础上构建的一套新的图形界面系统基础上构建的一套新的图形界面系统uAwt与与Swing的区别:的区别:Awt:Java处理图形用户界面的初始途径。处理图形用户界面的初始途径。重量级组件,把图形元素的创建和行为交给目标平台上的本地重量级组件,把图形元素的创建和行为交给目标平台上的本地GUI工具箱进行处理。工具箱进行处理。理论上理论上“一次编写,随处运行一次编写,随处运行”,实际上,实际上“一次编写,随处调试一次编写,随处调试”Swing:是是JFC(Foundation Classes)的一部分,轻量)的一部分,轻量级组件,显示界面与本机级组件,显示界面与本机O
4、S无关,无关,100%的纯的纯Java实现。实现。1、Swing体系结构体系结构uSwing是在是在AWT的基础上构建的图形界面系统。的基础上构建的图形界面系统。以以AWT为基础,提供了为基础,提供了AWT中的所有功能中的所有功能 进行了扩充,提供了许多新的图形界面组件。进行了扩充,提供了许多新的图形界面组件。JFCJFCAWTSwing AWTComponentsButtonFrameScrollBarWindowsFontDialogColorFrameGraphicsAWTEventToolKitJava 2DDrag and DropAccessibility9.1 Swing概述概述
5、uGUI设计三个概念:设计三个概念:组件组件(Component):Java的图形用户界面的最基的图形用户界面的最基本本组成部分组成部分。可以可以以以图形化图形化的方式的方式显示在屏幕上显示在屏幕上并能并能与用户进行交互与用户进行交互的对的对象象。例如例如一个按钮,一个一个按钮,一个标签等。标签等。必须将组件放在一定的必须将组件放在一定的容器容器中才可以显示出来。中才可以显示出来。容器容器(Container):本身也是一个:本身也是一个组件。组件。主要功能是主要功能是容纳其他组件和容纳其他组件和容器。容器。布局布局管理器(管理器(Layout Manager):每个每个容器都有一个布局管理器
6、,当容器需要对某个组件进行容器都有一个布局管理器,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器。定位或判断其大小尺寸时,就会调用其对应的布局管理器。7 7java.lang.Objectjava.lang.Objectjava.awt.Componentjava.awt.Componentjava.awt.Containerjava.awt.Containerjava.awt.Paneljava.awt.Paneljava.awt.Windowjava.awt.Windowjava.applet.Appletjava.applet.AppletJAppletJAp
7、pletjavax.swing.JComponentjavax.swing.JComponentjava.awt.Dialogjava.awt.Dialogjava.awt.Framejava.awt.FrameJDialogJDialogJFrameJFrameJWindowJWindowSwingSwing组件组件注意:注意:Component类类是一个抽象类,是一个抽象类,不能直接使用。不能直接使用。类结构类结构Swing的组件的组件JComponentAbstractButtonJbuttonJMenuItemJCheckBoxMenuItemJMenuJToggleButtonJCh
8、eckBoxJRadioButtonJComboBoxJLabelJListJMenuBarJpanelJPopupMenuJScollBarJScollPaneJTextComponentJEditorPaneJTextAreaJTextFieldSwing与与AWT相似的组件相似的组件JcomponentJColorChooserJFileChooserJInternalFrameJLayeredPaneJDesktopPaneJOptionPaneJProgramBarJRootPaneJseparatorJPopupMenu.SeparatorJToolBar.SeparatorJsl
9、iderJSplitPaneJTabbedPaneJtableJToolBarJToolTipJtreeJViewPortSwing比比AWT增加增加的组件的组件2、Swing组件的特性组件的特性uSwing组件的特性组件的特性 MVC体系结构:体系结构:每个组件有对应的每个组件有对应的model类管理数据类管理数据 每个组件有相关的分离模型和界面每个组件有相关的分离模型和界面 可存取可存取性支持:实现性支持:实现 了了Accessible接口接口 支持键盘操作支持键盘操作 设置边框设置边框 使用图标使用图标9.1 Swing概述概述uSwing组件的分类组件的分类JFrame,JApplet
10、,JDialog,JWindow共共4个。个。(2)中间容器:)中间容器:JPanel,JScrollPane,JSplitPane,JToolBar等。等。(3)特殊容器:)特殊容器:在在GUI上起特殊作用的中间层,如上起特殊作用的中间层,如JInternalJFrame,JLayeredPane,JRootPane等。等。(4)基本控件:)基本控件:实现人机交互的组件,如实现人机交互的组件,如Jbutton,JComboBox,JList,JMenu,JSlider,JTextField等。等。(5)不可编辑信息的显示:)不可编辑信息的显示:向用户显示不可编辑信息的组件,例如向用户显示不可
11、编辑信息的组件,例如JLabel,JProgressBar,ToolTip等。等。(6)可编辑信息的显示:)可编辑信息的显示:向用户显示能被编辑的格式化信息的组件向用户显示能被编辑的格式化信息的组件,如,如JColorChooser,JFileChoose,JFileChooser,JTable,JTextArea等。等。9.1 Swing概述概述u使用使用Swing的基本规则的基本规则 Swing组件不能直接添加到顶层容器中,必须添加到一个组件不能直接添加到顶层容器中,必须添加到一个与与Swing顶层容器相关联的内容面板上。顶层容器相关联的内容面板上。(1)把)把Swing组件放入一个顶层组
12、件放入一个顶层Swing容器的容器的内容面板内容面板上上(2)避免使用非)避免使用非Swing的重量级组件。的重量级组件。9.1 Swing概述概述u对对JFrameJFrame添加组件有两种方式:添加组件有两种方式:(1)1)用用getContentPanegetContentPane()()方法获得方法获得JFrameJFrame的内容面板,再的内容面板,再对其加入组件:对其加入组件:frame.getContentPaneframe.getContentPane().add().add(childComponentchildComponent)(2)2)建立一个建立一个JPanelJPa
13、nel或或 JDesktopPaneJDesktopPane之类的中间容器,把之类的中间容器,把组件添加到容器中,用组件添加到容器中,用setContentPane()setContentPane()方法把该容器置为方法把该容器置为JFrameJFrame的内容面板:的内容面板:JPanelJPanel contentPanecontentPane=new=new JPanelJPanel();();/把其它组件添加到把其它组件添加到JpanelJpanel中中;frame.setContentPaneframe.setContentPane(contentPanecontentPane);)
14、;/把把contentPanecontentPane对象设置成为对象设置成为frameframe的内容面板的内容面板9.1 Swing概述概述uSwing程序设计流程程序设计流程(1)引入)引入swing包包(2)选择)选择外观和感觉外观和感觉(3)设置顶层容器)设置顶层容器(4)设置按钮和标签)设置按钮和标签(5)向容器中添加组件)向容器中添加组件(6)在组件周围添加边界)在组件周围添加边界(7)进行事件处理)进行事件处理9.2 Swing容器容器u容器容器java.awt.Container是是Component的子的子类,类,一个容器可以容纳多个组件一个容器可以容纳多个组件,并使它们,并
15、使它们成为一个整体。成为一个整体。uJava程序界面的构成:程序界面的构成:一个一个顶层容器顶层容器(即主窗口)(即主窗口)顶层容器包含若干个顶层容器包含若干个中间容器中间容器 每个中间容器包含若干个每个中间容器包含若干个基本组件基本组件 按照合理的布局方式将它们组织在一起按照合理的布局方式将它们组织在一起 基本组件可响应发生在其上的事件基本组件可响应发生在其上的事件9.2 Swing容器容器uSwing常用的常用的顶层容器顶层容器有有 JFrame:用来创建:用来创建application,最常用的,最常用的 JApplet:用来创建:用来创建applet JDialog:用来创建对话框,常
16、用:用来创建对话框,常用 JWindow:不常用:不常用9.2 Swing容器容器u中间容器中间容器 JPanel,JScrollPane,JSplitPane,JTabbedPane、JInternalFrame:这些容器提供将有关组件按照某种布局:这些容器提供将有关组件按照某种布局组合在一起,然后放入中间容器或顶层容器的功能组合在一起,然后放入中间容器或顶层容器的功能 JPanel:提供一个面板:提供一个面板 JScrollPane:是具有滚动条的窗格:是具有滚动条的窗格 JSplitPane:是具有拆分功能的窗格:是具有拆分功能的窗格 JTabbedPane:是带有若干标签的分类窗格:是
17、带有若干标签的分类窗格 JInternalFrame:用于创建内嵌于:用于创建内嵌于JFrame中的内部框架中的内部框架 Box:提供创建横向:提供创建横向/纵向盒子容器的功能纵向盒子容器的功能9.2.1 JFrame框架框架u类类 JFrame 是是java.awt.Frame的子类的子类uJFrame上只能有一个上只能有一个唯一的组件唯一的组件JRootPane 调用调用JFrame.getContentPane()方法可获得方法可获得JFrame中内置的中内置的JRootPane对象。对象。程序不能直接在程序不能直接在JFrame实例对象上增加组件和设实例对象上增加组件和设置布局管理器,
18、置布局管理器,应在应在JRootPane对象上增加组件对象上增加组件和设置布局和设置布局。uJframe的的setDefaultCloseOperation方法可方法可以设置单击关闭按钮时的事件处理方式。以设置单击关闭按钮时的事件处理方式。9.2.1 JFrame框架框架19199.2.1 JFrame框架框架u常用构造方法:常用构造方法:JFrame():创建无标题窗口。:创建无标题窗口。JFrame(String s):创建标题名字是字符串创建标题名字是字符串s的窗口的窗口 例如:例如:JFrame f=new JFrame(“Hello”);usetDefaultCloseOperati
19、on方法:方法:设置单击窗口上的关闭按钮时的事件处理方式。设置单击窗口上的关闭按钮时的事件处理方式。JFrame.DO_NOTHING_ON_CLOSE JFrame.HIDE_ON_CLOSE JFrame.DISPOSE_ON_CLOSE JFrame.EXIT_ON_CLOSEJFrame类的常用类的常用方法:方法:方方 法法功功 能能 说说 明明 JMenuBar getJMenuBar()返回窗体上设置的菜单栏返回窗体上设置的菜单栏void setJMenuBar(JMenuBar mb)设置窗体的菜单栏设置窗体的菜单栏int getDefaultCloseOperation()返回
20、返回“close”窗体时执行的操作窗体时执行的操作void setDefultCloseOperation(int operation)设置设置“close”窗体时默认执行的窗体时默认执行的操作操作void remove(Component comp)从容器中移除指定的组件从容器中移除指定的组件void setContentPane(Container conPane)设置设置contentPane的属性的属性Container getCantentPane()返回此窗体的返回此窗体的contentPane对象对象JRootPane getRootPane()返回此窗体的返回此窗体的rootP
21、ane对象对象void setTtile(String title)设置或修改框架的标题设置或修改框架的标题String getTitle()返回框架的标题返回框架的标题void setBackground(Color c)设置框架的背景颜色设置框架的背景颜色boolean isResizable()判断窗口是否可以调节大小判断窗口是否可以调节大小方法方法功能说明功能说明Component add(Component comp)在容器中添加一个组件在容器中添加一个组件compvoid setLayout(LayoutManager mgr)设置组件容器,使用设置组件容器,使用mgr页页面布局设
22、置面布局设置void setFont(Font f)设置组件容器的字体设置组件容器的字体void remove(Component comp)删除容器组件里指定的组件删除容器组件里指定的组件void paint(Graphics g)重绘容器组件重绘容器组件void paintComponents(Graphics g)重绘容器组件里的所有组件重绘容器组件里的所有组件void removeAll()从容器中移除所有组件从容器中移除所有组件void remove(int index)从容器中移除从容器中移除index指定的组指定的组件件容器类容器类Container的常用方法的常用方法方法方法功
23、能说明功能说明void setBounds(int x,int y,int w,int h)以以(x,y)为对象的左上角,以为对象的左上角,以w为为宽,以宽,以h为高设置对象的显示区为高设置对象的显示区域域 void setBackground(Color c)设置对象的背景色为设置对象的背景色为c void setSize(int width,int height)设置对象的大小设置对象的大小void setFont(Font font)设置对象的字体样式为设置对象的字体样式为fontvoid setForeground(Color color)设置对象的前景色为设置对象的前景色为color
24、 void setVisible(Boolean b)设置组件是否显示设置组件是否显示void setLocation(int x,int y)设置组件显示位置的左上角坐标设置组件显示位置的左上角坐标为为(x,y)String getName()返回对象的名称返回对象的名称组件类组件类Component的常用方法的常用方法例子例子-创建框架窗口创建框架窗口import java.awt.*;import javax.swing.*;public class JFrame_Exam extends JFrame public static void main(String args)JFrame
25、_Exam mainJFrame=new JFrame_Exam();mainJFrame.setTitle(JFrame 框架示例框架示例!“);mainJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);mainJFrame.setSize(300,300);mainJFrame.setLocationRelativeTo(null);mainJFrame.getContentPane().setLayout(new FlowLayout();mainJFrame.getContentPane().setBackground(Colo
展开阅读全文