版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1,18章,图形用户界面,第2章摘要,18-1图形用户界面是什么?18-2 Java GUI基础设施18-3 GUI事件处理18-4布局管理器18-5 2D绘图18-6综合练习,3,18-1图形用户界面是什么?图形用户界面(Graphics User Interface,GUI)是指以图形方式与用户交互。也就是说,程序中显示的消息、信息以图形方式表示,还提供了图形操作介面(graphics user interface,GUI),以便用户操作程序。最极端的例子是电视机乐器或电脑游戏,即用户界面完全以图形方式提供。4,什么是图形用户界面?个人电脑上常见的Windows操作系统也以图形用户界面为
2、主,其下的大多数应用程序也以图形用户界面、Windows应用程序通常以窗口(Window)表示,上面可能有菜单、按钮、图标等各种组件。5,什么是图形用户界面?6,什么是图形用户界面?牙齿书之前写的样本节目没有提供图形用户界面,都只是文本模式(Text-based)下的应用节目,节目显示消息,用户输入都只是文本。即使程序用一些符号画画,它还是用文字画的。另外,您不能从鼠标、按钮、菜单等图形组件(例如窗口程序)中获取用户输入。7,什么是图形用户界面?如果还希望Java程序在微软Windows操作系统或Linux/Unix上的X Window环境中显示为图形,则必须使用Java的AWT或Swing软
3、件包提供的各种GUI组件绘制程序的用户界面插图。牙齿章节中要讨论的GUI组件主要是Swing包,但还需要AWT包中的某些功能。我们先看两个包。8,18-2 Java的GUI基础设施、Java AWT和Java Swing知道Javax.swing包、9、Java AWT和Java Swing。Java首次发行时,Java仅提供名为Abstract Window Toolkit(AWT)的GUI组件(或GUI类库),但Java 1.1引入了名为Swing的增强GUI组件类库,概述了这两种功能和区别。10、功能简单的AWT、Abstract Window Toolkit(AWT)提供了一组最基本的
4、GUI组件,如窗口、按钮等。只要在程式中建立所需的GUI组件类别物件,就可以在萤幕上绘制组件。AWT元件实际上被绘制为“本机”(native)元件,其“对等类”(peer class)以每个操作系统提供的方式出现。11,功能简单的AWT,12,功能简单的AWT(例如,Java程序使用AWT组件在Windows环境中显示按钮),AWT将调用Windows操作系统本身的GUI功能来显示按钮。如果在X Window环境下运行相同的程序,X Window将绘制牙齿按钮。13,简单函数AWT,由于不同的图形用户界面具有不同的行为方式牙齿,因此依赖于同级类绘制组件的AWT的茄子问题:节目标记GUI介面,可
5、能因操作系统而异。除了提供、14、功能简单的AWT、GUI组件等可视对象外,AWT还提供了设计窗口类型应用程序所需的一些茄子功能和框架,如事件驱动的编程模式。牙齿章节稍后将介绍。15,进化Swing,如上所述,Java在版本1.1中添加了一种新的GUI功能,称为Swing,但当时Swing仍然不是Java的核心(核心)牙齿。也就是说,它仍然只是附加扩展模块,但在1.2版中Swing牙齿了它。16、进化Swing、Swing和AWT的主要区别在于,它们不依赖操作系统的相应类来绘制各种GUI组件。所有Swing组件都不依赖Java自行操作系统绘制GUI元件,因此使用Swing绘制的GUI介面有助于
6、保持一致的外观和行为。,17,进化Swing,但Swing不代替AWT。Swing组件的实现由Java本身绘制,但Swing仍然构建在AWT之上。例如,GUI环境所需的事件驱动模型仍然遵循AWT提供的框架。18、演化Swing、AWT和Swing各有优缺点,但基于Swing提供了更全面的GUI设计功能,因此牙齿章节中介绍的GUI设计以Swing组件为中心。但是读者不必担心AWT。GUI设计所需的事件车手设计体系结构、组件配置管理器仍然源自AWT,因此它介绍了牙齿部分的AWT功能,以后无论使用AWT还是Swing,都可以轻松驾驶。19,javax。知道Swing包,使用Swing设计程序的GUI
7、也与这种模式密不可分。导入Swing包:swing包与以前使用的包略有不同。套装程式名称为javax.swing。还有一个x。使用Swing类创建对象:通过导入Swing包,可以使用提供的各种GUI组件类创建GUI对象。20、Component类和javax.swing包中最常用的类集是各种GUI组件类,如按钮、菜单、工具栏、文本框、下拉菜单等。Component类、22、Component类、上图中可发现的swing是AWT这是因为名为JComponen的父Swing组件类继承自AWT的Container类。此外,发现Swing类的一个共同点是,类名大部分以大写j开头,后跟元件或其它名称。例
8、如,若要显示文本消息,可以创建JLabel对象。若要显示简单的确认按钮,可以创建JButton对象。23,集装箱类,再想想。在Windows环境中,您是否看到过不属于屏幕上任何窗口的信息或按钮?是的,要显示各种GUI元件,首先必须具有窗口或其它类型的集装箱对象(Container)。因此,必须在程序中创建集装箱对象,才能将所需元件添加到集装箱对象并显示它们。24、集装箱类和集装箱(Container)被视为用于容纳其它元件的元件。上一示例继续:如果显示文本消息并且有用户可以按的确定按钮,则需要创建集装箱对象以容纳文本消息和按钮。Swing集装箱对象有五个:JFrame、JDialog、JInt
9、erFrame、JPanel和JWindow。25,集装箱类,JFrame:创建常规窗口的常规窗口使用JFrame。JDialog:对话窗口类型的窗口。JWindow:没有基本窗元素(例如窗标题)的阳春型窗。JInterFrame,JPanel:两个牙齿不能用于创建单独的窗口,必须包含在前三个容器中。例如,JInterFrame用于在窗口内创建子窗口。JPanel在窗口中创建面板。26,集装箱类,这些集装箱类的继承关系如下:27,集装箱类、JFrame、JDialog和JWindow都是java.awt.Window的派生类,定义了窗口集装箱集中共享的操作方法,让我们编写阳春的窗口程序。牙齿示
10、例只是简单地显示窗口,没有任何功能。30,阳春的窗口程序,31,阳春的窗口程序,32,阳春的窗口程序,1行,Swing对象需要在节目开头导入Javax.ss,第7行创建JFrame组件,调用配置方法时使用参数字符串。牙齿字符串将成为窗口标题栏的内容,如运行结果图中所示。33,阳春的窗口程序,在第10行调用setDefaultCloseOperation()方法以设置用户关闭窗口时要执行的操作。EXIT_ON_CLOSE常数表示关闭窗口时退出程序,它也是常规窗口应用程序的行为。第12行和第13行调用前面介绍的setSize()、setVisible()方法以显示窗口大小和窗口。34、将构件添加到
11、窗中,并且了解如何创建窗后,您将看到如何将构件添加到窗中。有趣的是,不能将元件直接添加到JFrame、JDialog等更高级的容器中。相反,必须将其添加到这些容器的Content Pane容器中。JFrame、JDialog和JWindow包含名为Content Pane的子容器。要添加到JFrame窗口和JDialog对话框窗口的GUI组件都必须添加到名为Content Pane的子容器中。35,向窗口添加组件,我们可以将JFrame视为窗口的轮廓,除了主窗口边框、标题栏、右上角的缩放窗口和关闭按钮以外。Content Pane表示窗口中实际可用的区域。也就是说,要获取可以添加各种组件的位置
12、:36,窗口JFrame的Content Pane,可以调用以下方法:然后可以调用从java.awt.Container继承的以下方法:38,将组件添加到窗口。知道使用容器容纳组件后,可以向窗口中添加jbute,牙齿程序首先创建JFrame、JButton对象,然后使用JFrame对象获取Content Pane以添加JButton组件,最后使用setVisible()方法显示窗口,如上例所示。39,将组件添加到窗口,第二,牙齿按钮占用Content Pane的总空间。调整窗口大小时,牙齿按钮与窗口一起变大或变小,与我们通常知道的固定大小按钮不同。要解决牙齿的两个茄子问题,首先需要了解AWT/
13、Swing的事件处理模型和布局体系结构。43,JDK 5.0默认图形介面样式,如果您使用JDK 5.0版编译运行程序的读者,您可能发现认为上述示例程序的屏幕是带有渐变的色彩样式,它可能与书中的图片略有不同。这是因为JDK 5.0系统的默认图形介面样式(Look and Feel)牙齿书籍插图中使用的原始Metal样式已替换为Ocean样式。要使用与以前版本相同的查找和提取,可以在节目(如main()方法开头)中实现44,18-3 GUI事件处理、委托事件处理框架实现Listener介面内部类,从而将事件处理类和方法设计为匿名类以继承适配器,在AWT的委托处理模型中,用户可以按GUI中的按钮、单
14、击,46,委托事件处理框架,要使程序在用户按下按钮时执行动作,必须编写处理相应事件(例如按下按钮的事件)的事件处理方法。编写事件处理方法后,还必须通知生成事件的元件。也就是说,我的物件必须是事件的侦听程式,以便在事件发生时,元件呼叫其事件处理方法。47,委托事件处理体系结构,48,委托事件处理体系结构,XXXListener介面实现:首先,包含事件处理方法的类必须声明为XXListener介面实现。不同的事件类型需要不同的介面实施。下表列出了一些茄子常见的侦听器介面、49、委托事件处理体系结构、事件处理方法编写等。事件处理方法是在Listener介面内声明的方法(如上所述),每个介面声明具有不
15、同的方法数。例如,ActionListener只有一个actionPerformed()方法。MouseMotionListener介面方法有两个茄子方法:mouseDragged()、mouseMoved()。如果需要在方法中编写响应事件的动作(如,50,委托事件处理体系结构,使用户按下按钮时更改窗口的背景颜色),请向action Performed()方法添加代码以更改窗口背景颜色。,51,委托事件处理框架,通知组件要成为听众。程序必须调用按钮组件的addActionListener()方法,以通知该组件对象是侦听器。换句话说,对象具有相应的事件处理方法。这样,按下按钮时,按钮元件将调用编写的actionPerformed()方法来执行要执行的动作。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 20047.1-2025光伏组件安全鉴定第1部分:结构要求
- 智能控制 课件 -第四章-专家控制系统
- 2025中学教师招聘考试题
- 内分泌科病区安全防护
- 内分泌甲状腺科普
- 新年心愿活动策划方案(3篇)
- 综合体项目管理制度(3篇)
- 兽药管理培训
- 销售合同管理制度流程模板(3篇)
- 《GAT 760.2-2008公安信息化标准管理分类与代码 第2部分:标准级别代码》专题研究报告深度
- 数字孪生方案
- 金融领域人工智能算法应用伦理与安全评规范
- 2026长治日报社工作人员招聘劳务派遣人员5人备考题库及答案1套
- 机动车驾校安全培训课件
- 河道清淤作业安全组织施工方案
- 2025年役前训练考试题库及答案
- 2024VADOD临床实践指南:耳鸣的管理课件
- 2026年七台河职业学院单招职业技能测试题库附答案
- 2021海湾消防 GST-LD-8318 紧急启停按钮使用说明书
- 烟花爆竹零售经营安全责任制度
- 方小丹建筑地基基础设计的若干问题课件
评论
0/150
提交评论