版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、界面设计的两种方法,IDE可视化界面设计 WYSIWYG 简单、方便、灵活度差 手工写代码 灵活 难度大,What You See Is What You Get,所见即所得,主要内容,Java中三种GUI技术 AWT及事件处理 基于Swing的GUI开发,重点、难点,重点 了解三种GUI技术的特点 AWT图形界面设计步骤 常用AWT组件类 难点 AWT事件处理模型,主要内容,Java中三种GUI技术 AWT及事件处理 基于Swing的GUI开发,Java中三种GUI技术,AWT(Abstract Window Toolkit): 抽象窗口工具包库,包含于所有的Java SDK中 Swing高
2、级图形库: 以AWT为基础 包含于Java2 SDK中 SWT(Standard Widget Toolkit): 来自IBM Eclipse开源项目的标准窗口部件库,Java中三种GUI技术,三种技术的特点 AWT Java的jdk标准,使用方便 简单、简陋 不支持很多常用组件 Swing 从Java2 即Java 1.2版本开始,Sun开始在JDK中提供 弥补awt的不足,提供丰富的组件 SWT 不包含于JDK中,需要从Eclipse单独下载 据说速度,Java中三种GUI技术,如何取舍:AWT、Swing、SWT? 一般选择AWT、Swing足矣 三者比较:参考阅读 ,主要内容,Java
3、中三种GUI技术 AWT及事件处理 基于Swing的GUI开发,AWT及事件处理,AWT概述 基于AWT的GUI构建方法 AWT事件处理 AWT组件类库,AWT概述,AWT基本原理 Java中支持图形用户界面(GUI, Graphics Users Interface)设计的一个工具集 设计目标:独立于平台,基于AWT的GUI构建方法,组件 所有AWT组件都是抽象类Component或MenuCompomnent类的子类 组件分类 容器组件:可以容纳其它组件 顶层容器 Window Frame Dialog 非顶层容器 Panel ScrollPanel,基于AWT的GUI构建方法,组件分类
4、非容器组件:不能容纳其它组件,必须放在容器组件中使用 Button Label TextField TextArea etc.,容器组件:Frame、Panel,Frame(框架) 可以作为java的顶级窗口使用 可以使用add方法,向其中加入其它组件,但不能加入Frame Panel(面板) 需要放在Window(Frame、Dialog、Applet)组件中 无边框 可放入其它组件(包括Panel),容器组件:Frame、Panel,Frame(框架) 可以作为java的顶级窗口使用 可以使用add方法,向其中加入其它组件,但不能加入Frame Panel(面板) 需要放在Window(F
5、rame、Dialog、Applet)组件中 无边框 可放入其它组件(包括Panel),容器组件:Frame、Panel,例:创建一个Frame public class MyFrame extends Frame public static void main(String args) MyFrame frame = new MyFrame(); frame.setSize(400, 300); frame.setTitle(Hello); frame.setVisible(true); ,容器组件:Frame、Panel,例:创建一个包含Panel和一个Button的Frame publi
6、c class MyFrame extends Frame public static void main(String args) MyFrame frame = new MyFrame(); frame.setSize(400, 300); frame.setTitle(Hello); frame.setVisible(true); ,布局管理器,布局的概念 Frame(框架) 可以作为java的顶级窗口使用 Java布局管理器 FlowLayout BorderLayout GridLayout CardLayout GridBagLayout null:空布局,布局管理器,例:创建一个
7、Frame public class MyFrame extends Frame public static void main(String args) MyFrame frame = new MyFrame(); frame.setSize(400, 300); frame.setTitle(Hello); frame.setVisible(true); ,GUI设计的步骤,1.创建一个顶层容器 2.确定采用的布局管理器,加入到容器中 3.创建所需组件,设置并添加到容器中 4.增加事件处理,响应用户操作,AWT事件处理,事件处理模型 程序获得事件后,对事件进行处理的机制 过程: 捕获事件(
8、键盘、鼠标等) 根据类型做出相应反应,AWT事件处理,事件处理模型中的三类对象 事件 用户界面上执行一个操作,都将产生一个或多个事件,如单击鼠标,按下键盘 事件源 产生事件的组件就是一个事件源 事件处理器 是一个方法,接收一个事件对象,并对其解释,再做出相应处理,课后练习,1.设计一个用户登录界面 2.简单计算器设计与实现,基于Swing的GUI开发(二),组件变量的命名规范 布局与界面设计的策略 组件事件处理,基于Swing的GUI开发(二),组件变量的命名规范 布局与界面设计的策略 组件事件处理,组件变量命名规范,规则: 用不同前缀区分不同组件 两种前缀体系:1.缩写 2.小写类名 用不同
9、后缀区分不同组件 Netbeans:将类名作为变量后缀 优点 见名知类 见名知义 见名知位,组件变量命名规范,示例1: JPanel panelLeft = new JPanel(); JPanel panelMain = new JPanel(); JPanel buttonOK = new JButton(”确定”); JPanel buttonExit = new JButton(”退出”); JTextField textFieldName= new JTextField();,组件变量命名规范,示例2:另一种体系 JPanel pnlLeft = new JPanel(); JPan
10、el pnlMain = new JPanel(); JPanel btnOK = new JButton(”确定”); JPanel btnExit = new JButton(”退出”); JTextField txtFldName= new JTextField();,组件变量命名规范,示例3:netbeans所采用的规范 JPanel leftPanel = new JPanel(); JPanel mainPanel = new JPanel(); JPanel OkButton = new JButton(”确定”); JPanel exitButton = new JButton
11、(”退出”); JTextField nameTextField= new JTextField();,组件变量命名规范,推荐第1种或第3种 不需要另外记忆 直观、易于阅读 疑问 JPanel panelLeft = new JPanel(); 还是 Panel panelLeft = new Panel(); JPanel jPanelLeft = new JPanel();,一旦采用,长期坚持,保持一致,组件变量命名规范,变量命名的常见不良习惯 JButton button1 = new JButton(); JButton button2 = new JButton(); JButton
12、 ButtonCancel = new JButton(); JPanel buttonLeft = new JPanel();,基于Swing的GUI开发(二),组件变量的命名规范 布局与界面设计的策略 组件事件处理,布局与界面设计策略,布局的选择 用户登录窗口 GridLayout 布局的使用,布局与界面设计策略,简单界面 设计时对不同部分代码分割 通过不同方法来实现不同部分 复杂界面 可以考虑用多个类实现 简单界面也可以考虑用类实现 养成模块划分的习惯 培养良好的思维 有利于代码维护,方便将来升级,布局与界面设计策略,界面分割与代码分割 比如,主界面分为东西中三部分,分别用三个类实现三个
13、部分 WestPanel CenterPanel EastPanel 每个部分最好相对独立,这样可以数据共享,方便处理,注意的问题,AWT中,可以直接向顶层组件添加组件。 Swing中,不能直接向顶层组件添加组件,而需要借助JPanel等中间组件向其中添加。 1.Container container = getContendPane(); this.container.add(new JButton(”Ok”); 2. JPanel panelMain = new JPanel(); panelMain.add(JButton(”Ok”); this.add(panelMain);,基于Sw
14、ing的GUI开发(二),组件变量的命名规范 布局与界面设计的策略 组件事件处理,组件事件处理,事件监听器几种的实现方式 通过自身实现监听器接口 通过外部类实现监听器接口 通过内部类实现监听器接口 通过匿名类实现监听器接口,组件事件处理,内部类和匿名类实现的监听器类的优点 方便 简化处理 如在内部类和匿名类中可以直接访问其所在类的变量 而在外部类中就需要相互传递参数,组件事件处理,事件适配器 有些监听器接口包含多个方法,实现对应的监听器类时,所有方法都需要实现 为方便使用,对包含两个方法以上的监听器接口,提供了事件适配器。这样可以只实现需要的方法,组件事件处理,事件监听器 事件适配器 WindowListener WindowAdapter MouseListener MouseAdapter KeyListener KeyAdapter,Java学习中的一些问题,Java学习中的一些问题,调试程序 IDE的调试功能 添加监测输出变量 错误 错误信息百度 从多种途径获取信息 重视Java API文档 百度、google的使用 论坛,Java学习中的一些问题,代码书写 养成好习惯,避免一些错误 括号成对书写() 代码格式规范(对齐;适当空格、空行) 规范变量名 充分熟悉IDE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《广播、电视和移动通信》课件
- 重症医学科中暑救治要点
- 金刚石石墨教学设计
- 酒店宴会厅综合设计方案
- 函数概念教学设计
- 清雅源标志设计
- 大别山旅游介绍
- 智能强化学习广告效果优化课程设计
- TLS安全优化实验课程设计
- FM收音机电路设计实践课程设计
- 湖北省2026届高考语文模拟卷四作文讲评:“生长与被看见从来不是同一回事”
- 2026年西安工投产业运营有限公司招聘(12人)笔试参考题库及答案解析
- 马工程《艺术学概论》课件-第九章课件电子教案
- 广东深圳市龙岗区2025-2026学年九年级中考模拟考试数学试题(含答案)
- 2026年新入团考试知识大全(必考知识点+完整题库+标准答案)
- 做账实操-砼业混凝土行业账务处理分录案例
- 桥梁事故应急池施工方案
- AQ3026-2026《化工企业设备检修作业安全规范》标准解读课件
- 2026年湖南省地理生物会考题库及答案
- 2026年1月浙江省高考(首考)思想政治试题(含答案)
- 2026年高中化学知识竞赛试卷及答案(共三套)
评论
0/150
提交评论