第八章 Applet与图形用户界面 Application和Applet是Java程序的两种基本形式,本章介绍Java Applet的基本工作原理和编程技术,简单讨论Java程序图形用户界面的设计和实现.

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
面向侧面的程序设计 方林博士 本文下载地址:
软件编程基础 Java Applet 是另一类非常重要的 Java 程序, 虽然它的源代码编辑与字节码的编译生成过程与 Java Application 相同,但它却不是一类可以独立运 行的程序,相反,它的字节码文件必须嵌入到另一 种语言 HTNI 的文件中并由负责解释 HTML 文件的 WWW 浏览器充当其解释器,来解释执行.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
JAVA程序设计 天津工程职业技术学院计算机工程系软件技术教研室.
Java程序设计教程 第一讲 Java概述.
第7章 Java小程序 7.1 Java小程序概述 7.2 Java小程序的设计方法和运行环境 7.3 Java小程序的生命周期
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
UI(用户界面)集训班 Illustrator 高级班.
Java Applet的运行原理 在网页向Java Applet传值 在Java Applet中播放声音 在Java Applet中使用组件
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之二).
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
Ch02 視窗Swing套件 物件導向系統實務.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Signutil.
2018/11/15 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
Java Applet 介绍.
Ch07 Java Applets 物件導向系統實務.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
大学计算机基础 典型案例之一 构建FPT服务器.
SVN服务器的搭建(Windows) 柳峰
走进编程 程序的顺序结构(二).
辅导课程六.
Java语言程序设计 第八部分 Applet小程序.
网络常用常用命令 课件制作人:谢希仁.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
Windows网络操作系统管理 ——Windows Server 2008 R2.
Ch04 事件處理 物件導向系統實務.
Windows 7 的系统设置.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
任务1-3 使用Dreamweaver创建ASP网页
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
《JAVA程序设计》 语音答疑 辅导老师:高旻.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第二章 登录UNIX操作系统.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
$9 泛型基础.
第四章 团队音乐会序幕: 团队协作平台的快速创建
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
姚金宇 MIT SCHEME 使用说明 姚金宇
分裂对象模型 C++ otcl.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
组件 复选框(Checkbox)可以让用户进行多项选择。复选框有两种状态,分别为“开(on)”和“关(off)”。当用户点中复选框的时候,复选框的状态就会改变。 1、创建复选框 (1)声明复选框。 Checkbox mycheckbox =new Checkbox (); (2)添加复选框。将复选框组件放置到容器中。
项目二:HTML语言基础.
第4章 Excel电子表格制作软件 4.4 函数(一).
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
Chapter 18 使用GRASP的对象设计示例.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
辅导课程十五.
Python 环境搭建 基于Anaconda和VSCode.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
Applet.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
1 Web基础知识 1.1 HTTP协议 1.2 Web服务器和浏览器 1.3 C/S模式与B/S模式 1.4 Web的访问原理
5.1 Applet的基本概念 5.2 Applet的编写 5.3 Applet的多媒体支持
Presentation transcript:

第八章 Applet与图形用户界面 Application和Applet是Java程序的两种基本形式,本章介绍Java Applet的基本工作原理和编程技术,简单讨论Java程序图形用户界面的设计和实现

WWW工作原理 发出请求 包含browser的用户端 server端 发回网页

静态网页的工作原理 接受请求 服务器端 找到静态网页 发送网页

Applet的基本工作原理 Applet是特殊的Java程序,它不需要专门的解释器来执行它,相对于Java Appliction的解释器,如JDK的java.exe,VJ++的jview.exe,Java Applet的解释器就是Internet的浏览器,确切地讲就是兼容Java的Internet浏览器。

Applet的工作原理: 1,.class和HTML保存在服务器 2,当浏览器向服务器请求下载嵌入了Applet的HTML文件时。 3,下载到客户端后,由浏览器解释HTML中的各种标记并显示在用户屏幕上,当浏览器遇到HTML文件中的一个特殊标记时,表明嵌有Applet程序,浏览器会根据Applet名字和位置把其字节码文件从WWW服务器上下载到本地。 4,利用浏览器本身拥有的Java解释器执行该字节码。

8.2 Applet类的使用 Java Applet程序必须有一个主类,其父类是系统的Applet类,正是通过这个类才能完成Applet程序与浏览器的配合 1、Applet类 存在于java.applet包中,从继承结构上说属于用户图形界面的java.awt包,是系统类java.awt.Panel的子类,由于Applet类的特殊,系统专门为它建立了一个java.applet包

Applet类是Panel的子类 (可查看源码验证) (1)包容和排列其他的界面元素,如按钮、对话框等; (2)响应它所包容范围之内的事件,或把事件向更高层次传递。 Applet类的作用: Applet在继承上述作用的基础上,还具有一些与浏览器和Applet 生命周期有关的专门方法

Applet类的主要方法 完成初始化操作的init()方法 Applet的字节码文件从WWW服务器下载后,浏览器将自动创建一个Applet类的实例并调用它从Applet类那里继承来的init()方法。用户程序可以重载父类的init()方法,定义一些必要的初始化操作。

启动浏览器运行Applet的start()方法 Start()方法在init()初始化之后被自动调用,或者是Applet被重新启动时被系统自动调用。也就是说,当包含Applet的HTML页面被重新加载时,Applet实例就会被重新启动并调用start()方法,但是init()方法只被调用一次

显示Applet界面的paint()方法 paint()方法的主要作用是在Applet的界面中显示文字、图形和其他界面元素。导致调用paint()方法的事件主要有三种: 1、Applet被启动之后 2、Applet 所在的浏览器窗口改变,包括大小、移动、被遮挡、重新显示等。 3、Applet的其他相关方法被调用,如repaint() paint()方法有一个固定的参数----Graphics类的对象g。

暂停Applet前执行的stop()方法 stop()方法类似于start()方法的逆操作,当用户暂停Applet之前,浏览器将首先自动调用stop()方法(例如用户转去查看其它网页)。用户可以重载Applet类的stop()方法。 消灭Applet之前执行的destroy()方法 当用户退出浏览器时,浏览器会自动调用此方法来完成一些释放资源、关闭连接之类的操作。

8.3 Applet与HTML文件的配合 在HTML中嵌入Applet的标记为 <applet 参数> </applet> 例如: <applet code= "Demo.class" width= "500" height= "300"> </applet> 此标记至少需包括三个参数: Code: 指明Applet字节码文件名 Height: 指明Applet界面占据的区域的高度,以像素为单位 Width: 指明宽度,以像素为单位

*这些参数都应该包含在<applet>标记的右半尖括号的内部 其他可选的参数: Codebase:当Applet文件与HTML文档不在同一目录时, 使用codebase来指明字节码文件的位置,这个位置使用URL格式 Alt: 当浏览器因某种原因不能执行字节码文件时,就把alt参数指明的信息显示给用户 align:表示Applet界面区域在浏览器窗口中的对齐情况 *这些参数都应该包含在<applet>标记的右半尖括号的内部

向applet传递参数 通过HTML文件的<param>标记,applet可以从中获得所要的参数,使用方法为: <param name=参数名 value= 参数值 > …… </applet>

在Applet中利用getParameter()方法来获取HTML传递来的参数,这个方法有一个字符串参数,表明它所希望获取的HTML参数的名字(即name指定的参数名),方法的返回值是一个字符串对象,即HTML中value指定的字符串。如果用户希望这个参数是其他类型,则要进行参数类型的转换 (见例8_3)

8.4 java图形用户界面概述 图形用户界面(GUI)的重要性:美观、易用、统一 为方便用户界面的开发,设计了专门的类库来生成各种标准图形界面元素,和处理图形界面的各种事件,这个类库就是java.awt包。AWT是abstract windows toolkit(抽象窗口工具集)的缩写。AWT类库中的各种操作被定义成在一个并不存在的“抽象窗口”中进行,使得开发人员所设计的界面独立于具体的界面实现,可以适用于所有的平台。

JFC(Java基本类 ),包含Swing构件 ,Swing是以AWT为基础的。 另外,还有IBM公司Eclipse项目里的SWT。 AWT、Swing、SWT三者的联系与比较?

构成图形界面的元素和成分可分为三类: 容器:用来组织其它界面成分和元素的单元(如窗口)。容器内包含的成分和元素可能又是一个容器(层层相套) 控制组件:是图形用户界面的最小单位之一,它里面不再包含其他的成分。目前常用的控制组件有: 选择类的:复选框Checkbox、单选按钮CheckboxGroup,下拉列表List; 文字处理类的:文本框TextField、文本区域TextArea; 命令类的:按钮Button、菜单Menu等。 用户自定义成分:它不能被系统识别和承认,通常只能起到装饰、美化作用,而不能响应用户的动作,也不具有交互功能。

8.6 Java的事件处理     Java将图形界面的所有事件进行分门别类(鼠标、键盘及图形界面标准元素的改变分别对应不同事件)组成不同的事件类

8.6.1 JDK1.02 事件处理机制 1.事件的产生 事件是系统对其可能处于的某种状态或某种操作的预先定义。 Java用Event类的对象来保存和表示事件。 当用户在程序的运行过程中引发了一个系统可识别的事件时,事件将自动创建一个Event类的对象来表示这个事件,并在这个对象中保存该事件的相关信息。 注:Event的实例是产生事件时系统自动创建的,不需要也不允许用户程序调用构造函数和new运算符来创建Event对象。

Event对象中的变量 Public long when:表示事件发生的时间,一般为系统内部安排事件处理排队用。 Public int id:表示事件的类型,包括: WINDOW_DESTROY WINDOW_MOVED KEY_PRESS KEY_RELEASE MOUSE_DOWN MOUSE_UP MOUSE_MOVE MOUSE_ENTER MOUSE_EXIT MOUSE_DRAG SAVE_FILE GOT_FOCUS等等

事件的响应和处理 系统为每一个用户事件创建了一个Event对象之后,把这个对象发送给AWT构件来处理。所有AWT构件的祖先是java.awt类库中的Component类,它定义了下面这些方法: public boolean handleEvent(Event evt) 定义为可以处理所有类型的事件。系统调用该方法时把需要它处理的事件Event对象evt作为参数传递给它,若此事件得到妥善处理,则方法返回true,否则返回false,表示还需要另一个AWT构件继续处理此事件。

public boolean handleEvent(Event e){//重载处理事件的方法 if(e.id==Event.WINDOW_DESTROY){//用户点击窗口的关闭 dispose();//关闭窗口 System.exit(0);//退出整个程序 } return super.handleEvent(e);//使用原事件分配体系处理

public boolean action(Event evt,Object what) 处理所有用户产生的事件,通常当一个事件发生时,系统首先调用handleEvent()方法,如果用户没有重载及改变类库中原有的handleEvent()方法,则这个方法将会自动调用action()方法。 public boolean mouseDown(Event evt,int x,int y) public boolean keyUp(Event evt,int key)

用户(开发人员)的主要工作 上述方法可以被系统自动调用,所以编程人员的主要任务是在不同的AWT构件中根据程序的需要覆盖并重写这些方法,使它们按照用户的需要来处理不同的事件。

事件处理顺序 1,先由处理常用事件的方法,如mouseDown(),keyUp()等来处理。 2,再由action(),handleEvent()来处理没有对应处理方法的其他事件。 3,若当前AWT构件不能处理发生在其中的事件,则通过事件处理方法的返回值false,将事件传递给其父对象处理。

8.8 GUI标准组件概述 构建程序的图形用户界面的主要任务有两个: 创建各界面组件并排列成图形用户界面的外观;   构建程序的图形用户界面的主要任务有两个: 创建各界面组件并排列成图形用户界面的外观; 定义这些组件对不同事件的响应从而完成图形用户界面(交互)功能。     GUI标准组件都是java.awt.*包中的根类Component类的子类,它的直接子类包括一个容器组件Container 和八个基本组件(Button,Label,Choice,TextComponent等)。Container是所有容器类的根类

AWT Sample application JFC Sample application