Java课件第六章图形界面设计.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Java课件第六章图形界面设计.ppt》由会员分享,可在线阅读,更多相关《Java课件第六章图形界面设计.ppt(154页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、16.16.1创建图形界面创建图形界面创建图形界面创建图形界面第第六六章章 图形界面设计图形界面设计6.46.4菜单组件菜单组件菜单组件菜单组件6.2AWT6.2AWT的事件模型的事件模型的事件模型的事件模型6.3AWT6.3AWT常用组件常用组件常用组件常用组件6.56.5图形设计图形设计图形设计图形设计2容器容器容器容器界面的构成界面的构成vv创建创建创建创建GUIGUI各组成成分,并安排从属各组成成分,并安排从属各组成成分,并安排从属各组成成分,并安排从属 位置关系(包含,相邻,相交)位置关系(包含,相邻,相交)位置关系(包含,相邻,相交)位置关系(包含,相邻,相交)vv定义定义定义定义
2、GUIGUI各成分对不同事件的响应,各成分对不同事件的响应,各成分对不同事件的响应,各成分对不同事件的响应,实现与用户的交互与界面功能实现与用户的交互与界面功能实现与用户的交互与界面功能实现与用户的交互与界面功能标准组件标准组件标准组件标准组件用户自定用户自定用户自定用户自定义成分义成分义成分义成分3界面元素界面元素v容器容器是用来组织其他界面成分和元素的单元。是用来组织其他界面成分和元素的单元。是用来组织其他界面成分和元素的单元。是用来组织其他界面成分和元素的单元。vv可以形成容器的层次,构筑复杂结构可以形成容器的层次,构筑复杂结构可以形成容器的层次,构筑复杂结构可以形成容器的层次,构筑复杂
3、结构vvWindowWindow(FrameFrame、AppletApplet、DialogDialog)v组组件件是是是是图图图图形形形形用用用用户户户户界界界界面面面面的的的的基基基基本本本本单单单单位位位位,它它它它里里里里面面面面不不不不再再再再包含其他的成分。包含其他的成分。包含其他的成分。包含其他的成分。vvGUIGUI组件是图形用户界面标准化的结果。组件是图形用户界面标准化的结果。组件是图形用户界面标准化的结果。组件是图形用户界面标准化的结果。vvGUIGUI组件的作用是完成与用户的交互。组件的作用是完成与用户的交互。组件的作用是完成与用户的交互。组件的作用是完成与用户的交互。
4、6 6.1 .1 创建图形界面创建图形界面4v用户自定义成分用户自定义成分vv文字、图形、图象文字、图形、图象文字、图形、图象文字、图形、图象vv不能像标准组件一样被系统识别和承认,不能像标准组件一样被系统识别和承认,不能像标准组件一样被系统识别和承认,不能像标准组件一样被系统识别和承认,只起装饰作用。只起装饰作用。只起装饰作用。只起装饰作用。vv不能响应用户的动作,不具有交互功能。不能响应用户的动作,不具有交互功能。不能响应用户的动作,不具有交互功能。不能响应用户的动作,不具有交互功能。6 6.1 .1 创建图形界面创建图形界面界面元素界面元素5抽象窗口工具抽象窗口工具-AWTvAbstra
5、ctWindowsToolkit(抽象窗口工具)(抽象窗口工具)AWTAWT类库中的各种操作被定义成在一个并不存在的类库中的各种操作被定义成在一个并不存在的类库中的各种操作被定义成在一个并不存在的类库中的各种操作被定义成在一个并不存在的“抽象窗口抽象窗口抽象窗口抽象窗口”中进行的。中进行的。中进行的。中进行的。抽取不同软硬件平台中所实现的窗口的公共特性。抽取不同软硬件平台中所实现的窗口的公共特性。抽取不同软硬件平台中所实现的窗口的公共特性。抽取不同软硬件平台中所实现的窗口的公共特性。所设计的界面独立于具体的界面实现所设计的界面独立于具体的界面实现所设计的界面独立于具体的界面实现所设计的界面独立
6、于具体的界面实现。v提供与机器无关的基本提供与机器无关的基本GUI标准组件。标准组件。选择类组件:选择类组件:选择类组件:选择类组件:单选按钮、复选框、下拉选单、列表框单选按钮、复选框、下拉选单、列表框单选按钮、复选框、下拉选单、列表框单选按钮、复选框、下拉选单、列表框文字处理类组件:文字处理类组件:文字处理类组件:文字处理类组件:标签、文本框、编辑框。标签、文本框、编辑框。标签、文本框、编辑框。标签、文本框、编辑框。命令类组件:命令类组件:命令类组件:命令类组件:按钮、工具栏、菜单等。按钮、工具栏、菜单等。按钮、工具栏、菜单等。按钮、工具栏、菜单等。6 6 6.1 .1 创建图形界面创建图形
7、界面vFramevPanelvApplet常用容器常用容器7|Frame8importjava.awt.*;importjava.awt.*;classMyFrameclassMyFramepublicstaticvoidmain(Stringargs)publicstaticvoidmain(Stringargs)Framef=newFrame(myframe);Framef=newFrame(myframe);f.setSize(600,400);f.setSize(600,400);f.setLocation(100,100);f.setLocation(100,100);f.setBa
8、ckground(Color.blue);f.setBackground(Color.blue);Buttonbtn=newButton(ButtonTest);Buttonbtn=newButton(ButtonTest);f.add(btn);f.add(btn);f.show();f.show();Casestudy:Casestudy:MyFrame.javaMyFrame.java9Casestudy:Casestudy:MyFrame.javaMyFrame.java10Panel|11Casestudy:Casestudy:MyFrame1.javaMyFrame1.java12
9、LayoutManager(布局管理器)(布局管理器)v为了使我们生成的图形用户界面具有良好的平台为了使我们生成的图形用户界面具有良好的平台为了使我们生成的图形用户界面具有良好的平台为了使我们生成的图形用户界面具有良好的平台 无关性,无关性,无关性,无关性,JavaJava语言中,提供了布局管理器这个工具语言中,提供了布局管理器这个工具语言中,提供了布局管理器这个工具语言中,提供了布局管理器这个工具 来管理组件在容器中的布局,而不使用直接设置组来管理组件在容器中的布局,而不使用直接设置组来管理组件在容器中的布局,而不使用直接设置组来管理组件在容器中的布局,而不使用直接设置组 件位置和大小的方式
10、。件位置和大小的方式。件位置和大小的方式。件位置和大小的方式。v每个容器都有一个布局管理器,当容器需要对某每个容器都有一个布局管理器,当容器需要对某每个容器都有一个布局管理器,当容器需要对某每个容器都有一个布局管理器,当容器需要对某 个组件进行定位或判断其大小尺寸时,就会调用其个组件进行定位或判断其大小尺寸时,就会调用其个组件进行定位或判断其大小尺寸时,就会调用其个组件进行定位或判断其大小尺寸时,就会调用其 对应的布局管理器。对应的布局管理器。对应的布局管理器。对应的布局管理器。6 6.1 .1 创建图形界面创建图形界面13LayoutManagerFlowLayoutFlowLayout 是
11、是是是PanelPanel的的的的缺省布局管理器缺省布局管理器缺省布局管理器缺省布局管理器将组件逐个地放在容器的一行上,当一行放满后重起将组件逐个地放在容器的一行上,当一行放满后重起将组件逐个地放在容器的一行上,当一行放满后重起将组件逐个地放在容器的一行上,当一行放满后重起一行。一行。一行。一行。BorderLayoutBorderLayout(FrameFrame和和和和DialogDialog两种容器的默认布局两种容器的默认布局两种容器的默认布局两种容器的默认布局管理器,区域的默认值是管理器,区域的默认值是管理器,区域的默认值是管理器,区域的默认值是CenterCenter)容器被划分为容
12、器被划分为容器被划分为容器被划分为5 5个区域:个区域:个区域:个区域:EastEast、SouthSouth、WestWest、NorthNorth、CenterCenter。GridLayoutGridLayout 网格式布局网格式布局网格式布局网格式布局CardLayoutCardLayout 卡片式布局卡片式布局卡片式布局卡片式布局GridBagLayoutGridBagLayout 网格包布局网格包布局网格包布局网格包布局 6 6.1 .1 创建图形界面创建图形界面14LayoutManager(布局管理器)(布局管理器)6 6.1 .1 创建图形界面创建图形界面v在程序中安排组件的
13、位置和大小时,应该注意:在程序中安排组件的位置和大小时,应该注意:在程序中安排组件的位置和大小时,应该注意:在程序中安排组件的位置和大小时,应该注意:vv容器中的布局管理器负责各个组件的大小和位置,容器中的布局管理器负责各个组件的大小和位置,容器中的布局管理器负责各个组件的大小和位置,容器中的布局管理器负责各个组件的大小和位置,因此用户无法在这种情况下设置组件的这些属性。因此用户无法在这种情况下设置组件的这些属性。因此用户无法在这种情况下设置组件的这些属性。因此用户无法在这种情况下设置组件的这些属性。如果试图使用如果试图使用如果试图使用如果试图使用JavaJava语言提供的语言提供的语言提供的
14、语言提供的setLocation()setLocation(),setSizesetSize()(),setBounds()setBounds()等方法,则都会被布局管理器覆盖。等方法,则都会被布局管理器覆盖。等方法,则都会被布局管理器覆盖。等方法,则都会被布局管理器覆盖。vv如果用户确实需要亲自设置组件大小或位置,则如果用户确实需要亲自设置组件大小或位置,则如果用户确实需要亲自设置组件大小或位置,则如果用户确实需要亲自设置组件大小或位置,则应取消该容器的布局管理器,方法为:应取消该容器的布局管理器,方法为:应取消该容器的布局管理器,方法为:应取消该容器的布局管理器,方法为:setLayout
15、(null)setLayout(null);15Casestudy:Casestudy:MyLayout.javaMyLayout.java16BorderLayoutvWindow,Frame和和Dialog的缺省布的缺省布局管理器。局管理器。BorderLayout布局管理器布局管理器包括包括5个区域:个区域:North,South,East,West和和Center。6 6.1 .1 创建图形界面创建图形界面17Casestudy:Casestudy:MyLayout1.javaMyLayout1.java1819GridLayoutCasestudy:Casestudy:MyLayou
16、t2.javaMyLayout2.java20vFrameFrameFrame是一个顶级窗口。是一个顶级窗口。是一个顶级窗口。是一个顶级窗口。FrameFrame的缺省布局管理器为的缺省布局管理器为的缺省布局管理器为的缺省布局管理器为BorderLayoutBorderLayout。vPanelPanelPanel无法单独显示,必须添加到某个容器中。无法单独显示,必须添加到某个容器中。无法单独显示,必须添加到某个容器中。无法单独显示,必须添加到某个容器中。PanelPanel的缺省布局管理器为的缺省布局管理器为的缺省布局管理器为的缺省布局管理器为FlowLayoutFlowLayout。当把当
17、把当把当把PanelPanel作为一个组件添加到某个容器中后,作为一个组件添加到某个容器中后,作为一个组件添加到某个容器中后,作为一个组件添加到某个容器中后,该该该该PanelPanel仍然可以有自己的布局管理器。因此,可仍然可以有自己的布局管理器。因此,可仍然可以有自己的布局管理器。因此,可仍然可以有自己的布局管理器。因此,可以利用以利用以利用以利用PanelPanel使得使得使得使得BorderLayoutBorderLayout中某个区域显示多中某个区域显示多中某个区域显示多中某个区域显示多个组件。个组件。个组件。个组件。Payattention:212223CardLayoutvCar
18、dLayout布局管理器能布局管理器能够够帮助用户处理两个以至更帮助用户处理两个以至更多的成员共享同一显示空间。多的成员共享同一显示空间。6 6.1 .1 创建图形界面创建图形界面24252627GUI事件处理事件处理 AWTAWT事件模型事件模型28WhatisanEvent?vEvent事件,就是发生在用户界面上的用户交事件,就是发生在用户界面上的用户交互行为所产生的一种效果。互行为所产生的一种效果。vEventSource产生事件的对象。产生事件的对象。vEventhandler接收事件对象并对其进行处理的方法。接收事件对象并对其进行处理的方法。29事件处理模型事件处理模型Hierach
19、icalmodel(JDK1.0)事件传递机制。事件传递机制。Delegationmodel(JDK1.1,1.2)授权处理机制。授权处理机制。30Java以前的事件模型以前的事件模型l l以前的以前的以前的以前的JDK1.0AWTJDK1.0AWT使用的是使用的是使用的是使用的是“基于继承的事件模型基于继承的事件模型基于继承的事件模型基于继承的事件模型”,在,在,在,在该模型该模型该模型该模型ComponentComponent类中定义了一系列事件处理方法,如:类中定义了一系列事件处理方法,如:类中定义了一系列事件处理方法,如:类中定义了一系列事件处理方法,如:handleEventhand
20、leEvent,mouseDownmouseDown,mouseUpmouseUp等等,我们对事件的等等,我们对事件的等等,我们对事件的等等,我们对事件的响应是通过对组件类继承并覆盖相应的事件处理方法的手段响应是通过对组件类继承并覆盖相应的事件处理方法的手段响应是通过对组件类继承并覆盖相应的事件处理方法的手段响应是通过对组件类继承并覆盖相应的事件处理方法的手段来实现,组件接收到事件向所在容器广播,沿着容器链直到来实现,组件接收到事件向所在容器广播,沿着容器链直到来实现,组件接收到事件向所在容器广播,沿着容器链直到来实现,组件接收到事件向所在容器广播,沿着容器链直到发现事件被某个容器的发现事件被
21、某个容器的发现事件被某个容器的发现事件被某个容器的handlehandle方法所处理。这种模型有很多方法所处理。这种模型有很多方法所处理。这种模型有很多方法所处理。这种模型有很多缺点,事件的处理不应当由事件产生者负责,而且根据缺点,事件的处理不应当由事件产生者负责,而且根据缺点,事件的处理不应当由事件产生者负责,而且根据缺点,事件的处理不应当由事件产生者负责,而且根据“设设设设计模式计模式计模式计模式”一书中的原则,一书中的原则,一书中的原则,一书中的原则,“继承继承继承继承”通常被认为是通常被认为是通常被认为是通常被认为是“对封装性对封装性对封装性对封装性的破坏的破坏的破坏的破坏”,父子类之
22、间的紧密耦合关系降低了灵活性,同时,父子类之间的紧密耦合关系降低了灵活性,同时,父子类之间的紧密耦合关系降低了灵活性,同时,父子类之间的紧密耦合关系降低了灵活性,同时继承容易导致家族树规模的庞大,这些都不利于组件可重用。继承容易导致家族树规模的庞大,这些都不利于组件可重用。继承容易导致家族树规模的庞大,这些都不利于组件可重用。继承容易导致家族树规模的庞大,这些都不利于组件可重用。31JDK1.0JDK1.0的事件模型:层次模型的事件模型:层次模型的事件模型:层次模型的事件模型:层次模型FrameFramePanelPanelButtonButtonActioneventActionevent
23、AWTAWT事件模型事件模型32importjava.awt.*;importjava.awt.*;importjava.applet.*;importjava.applet.*;publicclassAwttestextendsAppletpublicclassAwttestextendsAppletButtonb1=newButton(button1);Buttonb1=newButton(button1);Buttonb2=newButton(button2);Buttonb2=newButton(button2);Buttonb3=newButton(button3);Buttonb3
24、=newButton(button3);publicvoidinit()publicvoidinit()add(b1);add(b1);add(b2);add(b2);add(b3);add(b3);publicbooleanaction(Eventevt,Objectarg)publicbooleanaction(Eventevt,Objectarg)if(evt.target.equals(b1)if(evt.target.equals(b1)showStatus(button1);showStatus(button1);elseif(evt.target.equals(b2)elseif
25、(evt.target.equals(b2)showStatus(button2);showStatus(button2);elseelsereturnsuper.action(evt,arg);returnsuper.action(evt,arg);returntrue;returntrue;Casestudy:Casestudy:Awttest.javaAwttest.java33事件控制的要点事件控制的要点wJavaJava最新的事件处理方法是基于授权事件模型最新的事件处理方法是基于授权事件模型最新的事件处理方法是基于授权事件模型最新的事件处理方法是基于授权事件模型w事件源生成事件并将其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课件 第六 图形界面 设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内