- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 Java中的GUI编程 教授:郭磊 【本章导读】 图形用户界面(GUI,Graphical User Interface)使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发送指令,启动操作,并将系统运行的结果同样以图形方式显示给用户。图形用户界面操作简单,省去了字符界面用户必须记忆各种命令的麻烦,深受广大用户的喜爱和欢迎。所以学习设计和开发图形用户界面,是应用软件开发人员必修的一课。 本章主要介绍Swing和AWT中基本组件的用法,如何创建简单的用户界面,包括布局管理、用户事件,以及如何创建复杂的用户界面等。 【本章要点】 AWT和Swing简介 布局方式 事件处理 常用组件 字体和颜色设置 图形用户界面的概念 图形用户界面是一种方便的人机界面。它通过图形的方法,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机发出命令,启动程序,并将程序的运行结果同样以图形的形式显示给用户。 GUI支持包 Java语言在java.awt包中提供了大量地进行GUI设计所使用的类和接口,包括绘制图形、设置字体和颜色、控制组件、处理事件等内容,AWT是Java语言进行GUI程序设计的基础。 javax.swing包是Java语言提供的第二代GUI设计工具包,它以AWT为基础,在AWT内容的基础上新增或改进了一些GUI组件,使得GUI程序功能更强大,设计更容易、更方便。 AWT Abstract Window Toolkit Java处理图形用户界面的初始途径。 AWT库处理图形的方法:把这些元素的创建和行为交给目标平台上的本地GUI工具集进行处理。 理论上 “一次编写,随处运行”。 依赖于平台上的组件的能力,不同平台的用户体验有微妙的差异。 实际上“一次编写,随处调试”。 AWT包中类的继承关系 Swing Swing处理图形的方法:采用自行绘制的方式来完成对图形组件的显示。 不依赖于平台,外观完全一致。 真正实现了“一次编写,随处运行”。 在外观的控制上完全取代了AWT。 Swing没有完全取代AWT:Swing包中的类都是从AWT包中较上层的类继承过来的,仍然沿用AWT提供的事件处理机制。 Swing包中类的继承关系 GUI元素 组件:由AWT和Swing类所创建的对象。 容器:能容纳其它组件的组件。 这好比:池子里有盆,盆里有碗,碗里有勺。不同的组件,按一定的容纳关系构成了整个界面。 JFrame 顶层容器 是Swing界面的最顶层元素,好比:池子。 顶层容器就是界面中的主窗口,或母窗口。它没有父容器。 最基本的Swing应用程序 JFrame的复杂结构 JFrame的初级用法 getContentPane()获得内容面板,然后在其上添加组件。 不要组件直接加到JFrame对象上。 ContentPane好比热水瓶的内胆 在面板上加入组件 最有用的组件: JLabel 可以设字体,颜色 JTextField 可以接受用户输入 JButton 可以响应用户的点击 JComboBox 可以下拉列表供选择 JCheckBox 提供多选按钮 JRadioButton 提供单选按钮 每种组件的具体用法参见例程 JPanel 经常作为中间容器,为可见的组件分组,控制它们的布局关系和显示效果。 JPanel一般不可见,只是专门作为构造组间关系的过渡容器。 常用布局方式 BorderLayout 边界布局方式。东西南北中。 FlowLayout 象流水一样,塞满第一行,塞第二行 GridLayout 网格布局。分割为等大小的格子 设置布局方式 容器.setLayout(new FlowLayout()) 设为流布局 默认的布局 每个容器都有自己的默认布局方式 JFrame默认的是BorderLayout JPanel默认的是 FlowLayout 事件模型 一次事件的处理,涉及三个对象:事件源对象,事件对象,事件处理者对象。 事件模型的好处 事件的“当事人”自己不去处理事件,避免了大量继承的繁冗 处理过程 每种类型的事件都有一个对应的接口。 事件处理者(监听器)通常是一个类,该类如果能够处理某种类型的事件,就必须实现与该事件类型相对应的接口。 事件源对象把某种类型的事件委托给实现了该种事件处理接口的类的对象。以后,当这个事件源对象上发生了该种特定类型的事件时,就会自动去调用事件处理者(监听器)对象中相应的方法。 委托的花样 一个事件源可以委托多个事件处理者 当事件发生的时候,执行多个动作 多个事件源以委托同一事件处理者 当进入处理方法时,需要判定是哪个事件源的事件 命名的约定 事件名:XxxEvent 接口名:XxxListener 监听器向产生事件的事件源注册,那么事件源与事件处
文档评论(0)