欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    9 图形用户界面.ppt

    • 资源ID:84404892       资源大小:439.50KB        全文页数:80页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    9 图形用户界面.ppt

    第第9章章 图形用户界面(图形用户界面(GUI)n 9.1 Java图形用户界面概述图形用户界面概述n 9.2 用用AWT创建图形用户界面创建图形用户界面n 9.3 AWT组件组件n 9.4 布局管理器布局管理器n 9.5 用用Swing创建图形用户界面创建图形用户界面n 9.6 事件处理机制事件处理机制9.1 Java图形用户界面概述n 顾名思义,图形用户界面(顾名思义,图形用户界面(Graphics User Interface,缩写缩写GUI)是指以图形的显示方式与用户实现交互操是指以图形的显示方式与用户实现交互操作的应用程序界面。作的应用程序界面。Java提供了十分完善的图形用户提供了十分完善的图形用户界面功能,使得软件开发人员可以轻而易举地开发出界面功能,使得软件开发人员可以轻而易举地开发出功能强大、界面友善、安全可靠的应用软件。功能强大、界面友善、安全可靠的应用软件。n 在在Java语言中,有两个包(语言中,有两个包(java.awt和和javax.swing)囊括了实现图形用户界面的所有基本元素,这些基本囊括了实现图形用户界面的所有基本元素,这些基本元素主要包括容器、组件、布局管理器和绘图工具等。元素主要包括容器、组件、布局管理器和绘图工具等。容器是包容组件的部件,组件是与用户实现交互操作容器是包容组件的部件,组件是与用户实现交互操作的部件,布局管理器是管理组件在容器中的布局形式,的部件,布局管理器是管理组件在容器中的布局形式,绘图工具是绘制图形的组件。绘图工具是绘制图形的组件。9.1 Java图形用户界面概述n java.awt是是java1.1用来建立用来建立GUI的图形包,这里的的图形包,这里的“awt”是抽象窗口工具包(是抽象窗口工具包(Abstract Windowing Toolkit)的缩写,其中的组件常被称为的缩写,其中的组件常被称为AWT组件。组件。javax.swing是是Java2提出的提出的AWT的改进包,它主要改的改进包,它主要改善了组件的显示外观,增强了组件的控制能力。善了组件的显示外观,增强了组件的控制能力。9.1 Java图形用户界面概述n 在在Java中,设计用户界面需要经历中,设计用户界面需要经历4个基本步骤:个基本步骤:(1)创建和设置组件)创建和设置组件(2)将组件加入到容器中)将组件加入到容器中(3)布局组件)布局组件(4)处理由组件产生的事件)处理由组件产生的事件 9.1 Java图形用户界面概述9.2 用用AWT创建图形用户界面创建图形用户界面n AWT是抽象窗口工具包,其中涵盖了是抽象窗口工具包,其中涵盖了Java API为开为开发发Java应用程序提供的创建图形用户界面的工具集,应用程序提供的创建图形用户界面的工具集,它包含了用户界面的各种组件、事件处理模型、图形它包含了用户界面的各种组件、事件处理模型、图形和图像处理工具、布局管理器、数据传输、剪切和粘和图像处理工具、布局管理器、数据传输、剪切和粘贴操作等功能,使得在贴操作等功能,使得在Java环境中可以比较轻松地设环境中可以比较轻松地设计出具有良好的用户交互界面的应用程序。计出具有良好的用户交互界面的应用程序。AWT概述 n AWT是是Java基础类库基础类库JFC(Java Foundation Class)的一个重要组成部分,它位于的一个重要组成部分,它位于java.awt包中,包中,其中不仅包含了与显示界面有关的各种组件,还包含其中不仅包含了与显示界面有关的各种组件,还包含了一些子包,主要提供了色彩控制、数据传输、事件了一些子包,主要提供了色彩控制、数据传输、事件处理模型、拖放功能、字体设置、打印管理、图像处处理模型、拖放功能、字体设置、打印管理、图像处理等技术支持。理等技术支持。n AWT使用的是与运行环境相关的组件处理机制。也使用的是与运行环境相关的组件处理机制。也就是说,在应用程序中使用的各种组件需要在运行环就是说,在应用程序中使用的各种组件需要在运行环境中有相应的本地组件与之配合,共同完成其功能。境中有相应的本地组件与之配合,共同完成其功能。AWT组件类结构层次图组件类结构层次图 AWT容器容器(Container)n 容器(容器(Container)是用来放置其他组件的一种特殊组是用来放置其他组件的一种特殊组件,在件,在Java中容器用中容器用Container 类描述,它是类描述,它是Component的一个子类,因此,容器也具有组件的全部的一个子类,因此,容器也具有组件的全部特征,是一种具有特殊作用意义的组件。特征,是一种具有特殊作用意义的组件。Container类的部分方法类的部分方法n int getComponentCount()n Component getComponents()n Component add(Component comp)n void remove(Component comp)n LayoutManager getLayout()n void setLayout(LayoutManager mgr)n Dimension getPreferredSize()n Dimension getMinimumSize()n Dimension getMaximumSize()n void paint(Graphics g)容器类的层次结构图容器类的层次结构图 n Panel容器是一种最简单且无边框的容器,又称为面容器是一种最简单且无边框的容器,又称为面板容器。在这种容器中可以放置各种类型的组件,甚板容器。在这种容器中可以放置各种类型的组件,甚至是另外一个至是另外一个Panel容器,所以容器,所以Panel容器可以嵌套地放容器可以嵌套地放置多层。置多层。Panel类提供了两种构造方法,其格式为:类提供了两种构造方法,其格式为:n Panel()n Panel(LayoutManager layout)Panel容器容器n 在在java.awt包中提供了一个包中提供了一个Window 类,这个类描述类,这个类描述了无边框、无菜单栏的顶层窗口容器。由于一般的应用了无边框、无菜单栏的顶层窗口容器。由于一般的应用程序窗口都有边框、标题栏和菜单栏,所以通常使用它程序窗口都有边框、标题栏和菜单栏,所以通常使用它的子类的子类Frame,这个类描述了一个包含边框和标题栏的这个类描述了一个包含边框和标题栏的顶层窗口。顶层窗口。n Frame类提供了四种构造方法的格式:类提供了四种构造方法的格式:n Frame()n Frame(GraphicsConfiguration gc)n Frame(String title)n Frame(String title,GraphicsConfiguration gc)Frame容器容器Frame类的部分成员方法类的部分成员方法 n String getTitle()n void setTitle(String title)n MenuBar getMenuBar()n void setMenuBar(MenuBar mb)n Rectangle getMaximizedBounds()n void setMaximizedBounds(Rectangle bounds)9.3 AWT组件组件 n 尽管尽管AWT容器也属于组件,但它的主要作用是用来容器也属于组件,但它的主要作用是用来包容其他组件的。下面将讨论一下非容器组件,即那些包容其他组件的。下面将讨论一下非容器组件,即那些必须放置在容器中且相互之间不能嵌套的组件。为了避必须放置在容器中且相互之间不能嵌套的组件。为了避免混淆,在这里我们将前者称为容器,后者称为组件。免混淆,在这里我们将前者称为容器,后者称为组件。n Java提供了大量的组件,它们都是提供了大量的组件,它们都是Component的子类。的子类。尽管每种组件都有其特点和适用场合,但它们的使用过尽管每种组件都有其特点和适用场合,但它们的使用过程都要经历创建组件对象、将组件添加到容器中、设置程都要经历创建组件对象、将组件添加到容器中、设置显示属性、设置事件监听,处理事件等几个步骤。显示属性、设置事件监听,处理事件等几个步骤。n Label被称为标签组件,它是一种用来显示说明性的被称为标签组件,它是一种用来显示说明性的静态文本的组件。用户不能直接地编辑它,但可以在应静态文本的组件。用户不能直接地编辑它,但可以在应用程序中,通过调用用程序中,通过调用Label提供的成员方法更换文本的提供的成员方法更换文本的内容。内容。n Label类提供了三种构造方法的格式:类提供了三种构造方法的格式:Label()Label(String text)Label(String text,int alignment)n alignment可以是可以是Label类定义的整型常量,比如:类定义的整型常量,比如:LEFT、CENTER和和RIGHT。Label组件组件Label类的部分成员方法类的部分成员方法n String getText()n void setText(String text)n int getAlignment()n void setAlignment(int alignment)n TextField被称为单行文本组件,它是一种用来接收被称为单行文本组件,它是一种用来接收用户输入的组件。用户输入的组件。TextField是是TextComponent的子类。的子类。在在TextComponent类中描述了可编辑的文本串,并提类中描述了可编辑的文本串,并提供了一组成员方法,用来决定组件是否可编辑。如果供了一组成员方法,用来决定组件是否可编辑。如果可编辑,可以利用提供的相关成员方法对文本内容进可编辑,可以利用提供的相关成员方法对文本内容进行编辑操作。行编辑操作。TextField组件组件TextComponent类的部分方法类的部分方法 n void setText(String t)n String getText()n String getSelectedText()n boolean isEditable()n void setEditable(boolean b)n Color getBackground()n void setBackground(Color c)TextField类提供的构造方法和成员方法类提供的构造方法和成员方法n TextField()n TextField(String text)n TextField(int columns)n TextField(String text,int columns)n char getEchoChar()n void setEchoChar(char c)n int getColumns()n void setColumns(int columns)n Button组件被称为按钮组件,它是图形用户界面中非常组件被称为按钮组件,它是图形用户界面中非常重要的一种基本组件。主要用来激活用户编写的某项操作,重要的一种基本组件。主要用来激活用户编写的某项操作,即当用户按下某个按钮后,应用程序就会立即执行某个代即当用户按下某个按钮后,应用程序就会立即执行某个代码段。码段。n 在在Button类中提供了两个构造方法。类中提供了两个构造方法。Button()Button(String label)n 在在Button类中提供了两个与按钮标签有关的成员方法。类中提供了两个与按钮标签有关的成员方法。String getLabel()void setLabel(String label)Button组件组件n Checkbox被称为复选组件,它是一种图形化的、可被称为复选组件,它是一种图形化的、可以设置以设置“on”和和“off”两种状态的组件。用鼠标点击两种状态的组件。用鼠标点击一个复选按钮,可以使其在一个复选按钮,可以使其在“on”和和“off”之间进行之间进行切换。切换。n 在在Checkbox类中,主要提供了三种构造方法的格式:类中,主要提供了三种构造方法的格式:Checkbox()Checkbox(String label)Checkbox(String label,boolean state)Checkbox组件组件Checkbox类的部分成员方法类的部分成员方法nString getLabel()nvoid setLabel(String label)nboolean getState()nvoid setState(boolean state)9.4 布局管理器布局管理器 n 所谓布局管理器是指按照指定的策略,安排并管理所谓布局管理器是指按照指定的策略,安排并管理组件在容器中排列位置的一种特殊对象。组件在容器中排列位置的一种特殊对象。n FlowLayout是是Panel容器的默认布局管理器。它按照容器的默认布局管理器。它按照从上到下,从左到右的规则,将添加到容器中的组件从上到下,从左到右的规则,将添加到容器中的组件依次排列。如果一行中没有足够的空间放置下一个组依次排列。如果一行中没有足够的空间放置下一个组件,件,FlowLayout换行后,将这个组件放置在新的一行换行后,将这个组件放置在新的一行上。另外,在创建上。另外,在创建FlowLayout对象时,可以指定一行对象时,可以指定一行中组件的对齐方式,默认为居中,还可以指定每个组中组件的对齐方式,默认为居中,还可以指定每个组件之间,在水平和垂直方向上的间隙大小,默认值为件之间,在水平和垂直方向上的间隙大小,默认值为5个像素。这种布局管理器并不调整每个组件的大小以个像素。这种布局管理器并不调整每个组件的大小以适应容器的大小,而是永远保持每个组件的最佳尺寸,适应容器的大小,而是永远保持每个组件的最佳尺寸,剩余的空间用空格填补。剩余的空间用空格填补。FlowLayout布局管理器布局管理器n 在在FlowLayout类中,提供了构造方法和部分方法:类中,提供了构造方法和部分方法:n FlowLayout()n FlowLayout(int align)n FlowLayout(int align,int hgap,int vgap)n int getAlignment()n void setAlignment(int align)n int getHgap()n void setHgap(int hgap)n int getVgap()n void setVgap(int vgap)FlowLayout布局管理器布局管理器n BorderLayout是是Frame和和Dialog两种容器的默认布局两种容器的默认布局管理器,它将容器分为管理器,它将容器分为5个部分,分别命名为个部分,分别命名为North、South、West、East和和Center。n BorderLayout类提供了两种格式的构造方法:类提供了两种格式的构造方法:BorderLayout()BorderLayout(int hgap,int vgap)BorderLayout布局管理器布局管理器n GridLayout是一种很容易理解的布局管理器,它将是一种很容易理解的布局管理器,它将容器按照指定的行数、列数分成大小均匀的网格,且容器按照指定的行数、列数分成大小均匀的网格,且放入容器中的每个组件的大小都一样。将组件添加到放入容器中的每个组件的大小都一样。将组件添加到容器中可以有两种基本方法:一是使用默认的布局顺容器中可以有两种基本方法:一是使用默认的布局顺序,即按照从上到下,从左到右的次序将组件放入容序,即按照从上到下,从左到右的次序将组件放入容器的每个网格中;二是采用器的每个网格中;二是采用add(Component comp,int index)将组件放入到指定的网格中。将组件放入到指定的网格中。GridLayout布局管理器布局管理器n GridLayout类提供了三种格式的构造方法:类提供了三种格式的构造方法:GridLayout()GridLayout(int rows,int cols)GridLayout(int rows,int cols,int hgap,int vgap)GridLayout布局管理器布局管理器n CardLayout是一种将每个组件看作一张卡片,且将是一种将每个组件看作一张卡片,且将所有卡片码放成一摞,每一时刻只有一张卡片被显示所有卡片码放成一摞,每一时刻只有一张卡片被显示的布局管理器。有人将其形象地描述为一副落成一叠的布局管理器。有人将其形象地描述为一副落成一叠的扑克牌。第一个添加到容器中的组件位于最低层,的扑克牌。第一个添加到容器中的组件位于最低层,最后一个添加到容器中的组件位于最上层。最后一个添加到容器中的组件位于最上层。CardLayout布局管理器布局管理器9.5 用用Swing创创建建图图形用形用户户界面界面n Swing是在是在AWT基础上发展而来的,目前越来越基础上发展而来的,目前越来越多的人偏爱使用多的人偏爱使用Swing组件,这是因为组件,这是因为Swing是是Java图形用户界面工具进步的象征,是图形用户界面工具进步的象征,是AWT必然的替代必然的替代品。品。Swing概述概述 n与与AWT相比较,相比较,Swing具有以下几点优势:具有以下几点优势:(1)AWT是基于同位体(是基于同位体(Peer)的体系结构,这种设的体系结构,这种设计策略严重限制了用户界面中可以使用的组件种类及计策略严重限制了用户界面中可以使用的组件种类及功能,成为一个致命的缺憾;而功能,成为一个致命的缺憾;而Swing不需要本地提不需要本地提供同位体,这样可以给设计者带来更大的灵活性,有供同位体,这样可以给设计者带来更大的灵活性,有利于增强组件的功能。利于增强组件的功能。(2)在)在AWT中,有一部分代码是用中,有一部分代码是用C编写的;而编写的;而Swing是是100%的纯的纯Java,增强了应用程序的与环境无增强了应用程序的与环境无关性。关性。(3)Swing具有控制外观(具有控制外观(Pluggable look and feel)的能的能力,即允许用户自行定制桌面的显示风格,比如,更换力,即允许用户自行定制桌面的显示风格,比如,更换配色方案,让窗口系统更加适应用户的习惯和需要,而配色方案,让窗口系统更加适应用户的习惯和需要,而AWT 组件完全依赖于本地平台。组件完全依赖于本地平台。(4)增加了裁剪板、鼠标提示和打印等功能。)增加了裁剪板、鼠标提示和打印等功能。所有所有Swing组件类都存在于组件类都存在于javax.swing包中。为了避免包中。为了避免混淆,混淆,Swing包中的所有类名均在包中的所有类名均在AWT类名的前面冠于类名的前面冠于“J”字符,例如,字符,例如,JPanel、JFrame、JButton等。等。Swing概述概述 Swing容器容器 n 尽管所有的尽管所有的Swing都属于容器,但还是有几种专门都属于容器,但还是有几种专门用于作为容器的组件。它们被分成顶层容器、通用容用于作为容器的组件。它们被分成顶层容器、通用容器和专用容器三个类别,其中顶层容器和通用容器是器和专用容器三个类别,其中顶层容器和通用容器是常用的两类容器形式。常用的两类容器形式。n 每一个应用每一个应用Swing组件的应用程序都至少要有一个顶组件的应用程序都至少要有一个顶层容器。大家都知道,一个容器可以包含其他的容器,层容器。大家都知道,一个容器可以包含其他的容器,即多个容器之间可以具有嵌套关系,这样就构成了一即多个容器之间可以具有嵌套关系,这样就构成了一个层次结构。所谓顶层容器是指最外层的容器,即包个层次结构。所谓顶层容器是指最外层的容器,即包含所有组件或容器的那层容器。如果我们将这个容器含所有组件或容器的那层容器。如果我们将这个容器层次结构用树型结构描述的话,顶层容器就是这棵树层次结构用树型结构描述的话,顶层容器就是这棵树的根。的根。顶层顶层容器容器 Swing顶层容器类层次结构图顶层容器类层次结构图 n在使用这些顶层容器时,需要注意以下几点:在使用这些顶层容器时,需要注意以下几点:(1)为了能够在屏幕上显示,每个)为了能够在屏幕上显示,每个GUI组件都必须位于组件都必须位于一个容器层级结构中。一个容器层级结构中。(2)每个)每个GUI组件只能被添加到一个容器中。组件只能被添加到一个容器中。(3)每个顶层容器都包含一个内容窗格()每个顶层容器都包含一个内容窗格(Content pane),),所有的可视组件都必须放在内容窗格中显示。可以调用所有的可视组件都必须放在内容窗格中显示。可以调用顶层容器中顶层容器中getContentPane()方法得到当前容器的内容窗方法得到当前容器的内容窗格,并使用格,并使用add()方法将组件添加到其中。方法将组件添加到其中。(4)可以在顶层容器中添加菜单栏,它将位于顶层容器)可以在顶层容器中添加菜单栏,它将位于顶层容器的约定位置。的约定位置。顶层顶层容器容器窗口框架容器、内容窗格和菜单栏的位置关系窗口框架容器、内容窗格和菜单栏的位置关系 顶层顶层容器容器n 在在Swing中,用中,用JFrame类实现窗口框架。正像前面类实现窗口框架。正像前面讲述的那样,不能直接将可视组件放置在顶层容器中,讲述的那样,不能直接将可视组件放置在顶层容器中,而需要与内容窗格(而需要与内容窗格(ContentPane)配合使用。配合使用。n 在在JFrame类中,提供了两种格式的构造方法:类中,提供了两种格式的构造方法:n JFrame()n JFrame(String title)JFrame类类 JFrame类类的部分方法的部分方法n int getDefaultCloseOperation()n void setDefaultCloseOperation(int)n void pack()n Dimension getSize()n void setSize(int width,int height)n void setSize(Dimension size)n Rectangle getBounds()n void setBounds(int xleft,int yleft,int width,int height)n void setBounds(Rectangle size)n Container getContentPane()n JMenuBar getJMnuBar()n 通用容器包含了一些可以被使用在许多不同环境下通用容器包含了一些可以被使用在许多不同环境下的中间层容器。主要包括面板容器(的中间层容器。主要包括面板容器(Panel)、)、带滚带滚动条的视口容器(动条的视口容器(ScrollPane)、)、工具栏(工具栏(ToolBar)等。等。Swing中,分别用中,分别用JPanel、JScrollPane和和JToolBar类类实现,它们都是实现,它们都是JComponent的子类,可以放置在其的子类,可以放置在其他容器中,也可以放置其他组件。他容器中,也可以放置其他组件。通用容器通用容器n 面板容器是一种常用的容器种类。在默认情况下,面板容器是一种常用的容器种类。在默认情况下,除了背景外,它不会自行绘制任何东西。当然,可以除了背景外,它不会自行绘制任何东西。当然,可以通过相应的方法很方便地为它添加边框,或定制希望通过相应的方法很方便地为它添加边框,或定制希望绘制的内容。绘制的内容。n 在默认情况下,面板容器是不透明的,这使得它具在默认情况下,面板容器是不透明的,这使得它具有类似内容窗格的特点,且有助于提高绘图效率。当有类似内容窗格的特点,且有助于提高绘图效率。当然,也可以调用然,也可以调用setOpaque()方法,将其设置为透明方法,将其设置为透明的。如果面板容器是透明的,将没有背景,这样可以的。如果面板容器是透明的,将没有背景,这样可以使位于该容器覆盖区域下面的组件显示出来。使位于该容器覆盖区域下面的组件显示出来。面板容器(面板容器(JPanel)n 在在Swing中,用中,用JScrollPane类实现了具有滚动功能类实现了具有滚动功能的视口容器。由于屏幕大小的限制,有些组件不能在的视口容器。由于屏幕大小的限制,有些组件不能在一屏中全部显示出来,或欲显示内容的大小动态地发一屏中全部显示出来,或欲显示内容的大小动态地发生变化,因此可以使用带滚动功能的视口容器,利用生变化,因此可以使用带滚动功能的视口容器,利用它提供的滚动条移动窗口在组件上的位置,将组件的它提供的滚动条移动窗口在组件上的位置,将组件的全部内容分区域地显示出来。全部内容分区域地显示出来。带滚动视带滚动视口容器(口容器(JScrollPane)n 在在Swing中,所有的组件都是中,所有的组件都是JComponent类的子类,类的子类,这个类为它的所有子类提供了下列功能:这个类为它的所有子类提供了下列功能:n 工具提示、绘画和设置边框、可控制显示外观、工具提示、绘画和设置边框、可控制显示外观、定定制属性、支持布局管理器、支持拖拽功能、双缓冲、可制属性、支持布局管理器、支持拖拽功能、双缓冲、可访问性、击键绑定。访问性、击键绑定。Swing组组件件n与与AWT组件相比较,组件相比较,Swing组件增加了以下几个新功组件增加了以下几个新功能:能:(1)按钮和标签组件不仅可以显示文本串,还可以显)按钮和标签组件不仅可以显示文本串,还可以显示图片。示图片。(2)可以轻松地为大多数组件添加或更改边框。例如,)可以轻松地为大多数组件添加或更改边框。例如,可以轻而易举地在一个容器或标签的周围添加一个边框。可以轻而易举地在一个容器或标签的周围添加一个边框。(3)可以通过调用内部的成员方法或创建一个子类,)可以通过调用内部的成员方法或创建一个子类,改变改变Swing组件的外观和行为。组件的外观和行为。(4)Swing组件不必要求一定是矩形,例如,可以创建组件不必要求一定是矩形,例如,可以创建一个圆形按钮。一个圆形按钮。n在在AWT中,我们已经讲过,标签是一种不对任何事中,我们已经讲过,标签是一种不对任何事件响应的组件,它主要被用来实现一些说明性的描述。件响应的组件,它主要被用来实现一些说明性的描述。在在Swing中,用中,用JLabel类实现标签组件,它的显示形式类实现标签组件,它的显示形式得到了扩展,它不仅可以显示文字,还可以显示图片。得到了扩展,它不仅可以显示文字,还可以显示图片。标签标签(JLabel)JLabel提供的主要构造方法提供的主要构造方法n JLabel()n JLabel(Icon icon)n JLabel(Icon icon,int horizontaAlignment)n JLabel(String text)n JLabel(String text,int horizontaAlignment)n JLabel(String text,Icon icon,int horizontaAlignment)n String getText()n void setText(String text)n Icon getIcon()n void setIcon(Icon icon)n int getHorizontaAlignment()n void setHorizontalAlignment(int alignment)n int getVerticalAlignment()n void setVerticalAlignment(int alignment)JLabel提供的主要方法提供的主要方法n Swing按钮既可以显示文字,也可以显示图像,并且按钮既可以显示文字,也可以显示图像,并且每个按钮中的文字可以相对于图像显示在不同的位置,每个按钮中的文字可以相对于图像显示在不同的位置,每个按钮中带下划线的字母是快捷键,例如,点击每个按钮中带下划线的字母是快捷键,例如,点击ALt-M等价于用鼠标点击中间的按钮。当按钮被禁用等价于用鼠标点击中间的按钮。当按钮被禁用时,自动地变成禁用的外观,而且还可以提供一幅专时,自动地变成禁用的外观,而且还可以提供一幅专门用于按钮禁用状态的图像。门用于按钮禁用状态的图像。按按钮钮(JButton)n在在Swing中,包含多种形式的按钮,它们都以中,包含多种形式的按钮,它们都以AbstractButton作为父类。作为父类。按按钮钮(JButton)抽象抽象类类AbstractButton类类的部分方法的部分方法nboolean isSelected()nvoid setSelected(boolean b)nString getText()nvoid setText(String text)nIcon getIcon()nvoid setIconb(Icon icon)nIcon getDisabledIcon()nvoid setDisabledIcon(Icon icon)nIcon getPressedIcon()nvoid setPressedIcon(Icon icon)n(1)创建按钮对象;)创建按钮对象;n(2)将按钮对象添加到容器中;)将按钮对象添加到容器中;n(3)设置响应点击按钮的操作。)设置响应点击按钮的操作。使用按使用按钮组钮组件需要件需要经过经过下列基本步下列基本步骤骤n 文本框是接收用户输入的一种组件,在文本框是接收用户输入的一种组件,在Swing中提供中提供了多种文本框组件,它们都是由了多种文本框组件,它们都是由JTextComponent类派类派生的子类实现。生的子类实现。文本框(文本框(JText field)JTextField类类提供构造方法提供构造方法n JTextField()n JTextField(String text)n JTextField(String text,int col)n JTextField(int col)JTextField类类的部分成的部分成员员方法方法n String getText()n void setText(String text)n boolean isEditable()n void setEditable(boolean editable)n int getColumns()n void setColumns(int col)组组合框(合框(JCombobox)n 组合框允许用户从若干个选项中选择一项。在组合框允许用户从若干个选项中选择一项。在Swing中用中用JComboBox类实现,它提供了两种不同形类实现,它提供了两种不同形式的组合框。一种是不可编辑的组合框,它由一个按式的组合框。一种是不可编辑的组合框,它由一个按钮和下拉列表组成,这是默认形式;另一种是可编辑钮和下拉列表组成,这是默认形式;另一种是可编辑的组合框,它由一个可接收用户输入的文本框、按钮的组合框,它由一个可接收用户输入的文本框、按钮和下拉列表组成,用户既可以在文本框中输入文本串,和下拉列表组成,用户既可以在文本框中输入文本串,也可以点击按钮,打开下拉列表。也可以点击按钮,打开下拉列表。JComboBox类类提供的构造方法和方法提供的构造方法和方法nJComboBox()nJComboBox(Object item)nJComboBox(Vector item)nvoid addItem(Object item)nvoid insertItemAt(Object item,int index)nObject getItemAt(int index)nObject getSelectedItem()nvoid removeItem(Object item)nint getItemCount()9.6 事件事件处处理机制理机制n Java采用的是事件处理机制,即程序的运行过程是采用的是事件处理机制,即程序的运行过程是不断地响应各种事件的过程,事件的产生顺序决定了不断地响应各种事件的过程,事件的产生顺序决定了程序的执行顺序,这是图形用户界面应用程序最重要程序的执行顺序,这是图形用户界面应用程序最重要的部分,是实现各种操作功能的重要途径。的部分,是实现各种操作功能的重要途径。n 事件产生后,首先由操作系统鉴别,对于每个由于事件产生后,首先由操作系统鉴别,对于每个由于用户的操作行为产生的事件,操作系统都要决定这个用户的操作行为产生的事件,操作系统都要决定这个事件将由哪个应用程序处理,并把这个事件的相关信事件将由哪个应用程序处理,并把这个事件的相关信息传递给相应的处理程序。息传递给相应的处理程序。事件的事件的处处理理过过程程事件的事件的处处理理过过程程n 事件源事件源:能够产生事件的对象都可以成为事件源,如文能够产生事件的对象都可以成为事件源,如文本框、按钮、下拉式列表等。本框、按钮、下拉式列表等。n 监视器监视器:需要一个对象对事件源进行监视,以便对发生需要一个对象对事件源进行监视,以便对发生的事件作出处理。事件源通过调用相应的方法将某个对象的事件作出处理。事件源通过调用相应的方法将某个对象作为自己的监视器,其形式是:作为自己的监视器,其形式是:事件源事件源.addXxxListener(监视器监视器);注意:创建该监视器对象的类必须声明实现相应的接口。注意:创建该监视器对象的类必须声明实现相应的接口。n 处理事件的接口处理事件的接口:当事件源发生事件时,监视器就自动当事件源发生事件时,监视器就自动调用执行被类实现的某个接口方法调用执行被类实现的某个接口方法。n 一个一个Java应用程序可以响应各种类型的事件,比如,应用程序可以响应各种类型的事件,比如,点击按钮、拖动滚动条、极小化窗口等。为了便于处理,点击按钮、拖动滚动条、极小化窗口等。为了便于处理,Java将这些事件划分成了低级事件和语义事件两个类别。将这些事件划分成了低级事件和语义事件两个类别。n 低级事件是指来自键盘、鼠标或与窗口操作有关的事低级事件是指来自键盘、鼠标或与窗口操作有关的事件。比如,窗口极小化、关闭窗口、移动鼠标或敲击键件。比如,窗口极小化、关闭窗口、移动鼠标或敲击键盘,其含义由系统和程序员共同赋予。盘,其含义由系统和程序员共同赋予。n 语义事件是指与组件有关的事件,比如,点击按钮、语义事件是指与组件有关的事件,比如,点击按钮、拖动滚动条等。这些事件源于图形用户界面,其含义由拖动滚动条等。这些事件源于图形用户界面,其含义由程序设计员赋予。程序设计员赋予。事件事件类类n 焦点事件、鼠标事件、键盘事件和窗口事件都属于焦点事件、鼠标事件、键盘事件和窗口事件都属于低级事件,下面是低级事件的事件类名。低级事件,下面是低级事件的事件类名。n FocusEventn MouseEventn KeyEventn WindowEvent低低级级事件事件低低级级事件事件类结类结构构图图 低低级级事件的事件的监监听器接口听器接口 语义语义事件事件 n下面是语义事件的事件类名。下面是语义事件的事件类名。n ActionEventn ItemEventn AdjustmentEventn ComponentEventn ContainerEventn TextEvent语义语义事件的事件的监监听器接口听器接口 窗口事件的窗口事件的处处理理 n 窗口事件的窗口事件的ID定义:定义:n WINDOW_OPENEDn WINDOW_CLOSEINGn WINDOW_CLOSEDn WINDOW_ACTIVATEDn WINDOW_DEACTIVATEDn WINDOW_ICONFIEDn WINDOW_DEICONIFIEDn 对应于窗口事件的监听器接口为对应于窗口事件的监听器接口为WindowListener,在在这个接口中,包含了处理每一种具体窗口事件的方法。这个接口中,包含了处理每一种具体窗口事件的方法。当某个事件发生时,将自动地调用相应的方法。当某个事件发生时,将自动地调用相应的方法。n windowOpen

    注意事项

    本文(9 图形用户界面.ppt)为本站会员(hwp****526)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开