Java语言程序设计(第三版,清华)第9章

上传人:飞*** 文档编号:46119149 上传时间:2018-06-22 格式:PPT 页数:213 大小:1.75MB
返回 下载 相关 举报
Java语言程序设计(第三版,清华)第9章_第1页
第1页 / 共213页
Java语言程序设计(第三版,清华)第9章_第2页
第2页 / 共213页
Java语言程序设计(第三版,清华)第9章_第3页
第3页 / 共213页
Java语言程序设计(第三版,清华)第9章_第4页
第4页 / 共213页
Java语言程序设计(第三版,清华)第9章_第5页
第5页 / 共213页
点击查看更多>>
资源描述

《Java语言程序设计(第三版,清华)第9章》由会员分享,可在线阅读,更多相关《Java语言程序设计(第三版,清华)第9章(213页珍藏版)》请在金锄头文库上搜索。

1、第9章 图形用户界面JAVA语言程序设计1目录l9.1 Applet 概述l9.2 Applet应用程序接口l9.3 绘图l9.4 Swing基础l9.5 Swing的特点和概念l9.6 Swing组件l9.7 其它Swing特性l9.8 本章小结(说明:本章部分例题出自java_tutorial_sun)2serverHTMLserverAppletserverActiveX不依赖于OS, 安全性能好 虚拟机执行 字节码二进制文件 用户选择安装Server VBscript JavascriptASP, JSPBrowser可执行码那 嵌入HTMLDB被浏览器加载和执行被浏览器加载和执行 C

2、GI dll, PerlBrowserServlet BrowserHTML内 嵌入可执行码DB被服务器加载和执行被服务器加载和执行39.1 Applet 概述lJava Applet一种嵌入HTML文档中的Java程序与Application相比,Applet具有明显的优 点lweb浏览器提供了运行Applet所需要的许多 功能lApplet是在运行时通过网络从服务器端下载 的,因而便于软件的发布和及时更新 Applet也有其局限性,l不能在客户机上读写当地文件l也不能连接除它所在的服务器以外的其它机 器4l在浏览器中加载一个Applet,功能是显示一个字符 串“This is a Java

3、 Applet!” import java.awt.Graphics; import javax.swing.JApplet; public class Ex9_1 extends JApplet public void paint(Graphics g) /重载JApplet类 的paint方法/参数是Graphics类的对象,是由浏览器传 递过来的super.paint(g); /调用其超类JApplet类的paint 方法g.drawString(“This is a Java Applet!“,25,25); 9.1 Applet概述(续)例9_1Applet概述5l在NetBeans

4、 IDE中运行9.1 Applet概述(续)例9_1运行结果Applet概述6l编译ex9_1.java产生字节码文件ex9_1.class。接下来就需 要编写一个HTML文件ex9_1.html来嵌入ex9_1.classl将ex9_1.html文件和Ex9_1.class文件放在同一个目录下。 现在,在浏览器中打开这个HTML文件,当浏览器遇到Applet 标记时,就会自动载入指定的class文件,就会实现在屏幕上绘 制一串字符的效果9.1 Applet概述(续)例9_1运行结果Applet概述79.2 Applet应用程序接口lJApplet类一个applet程序需要继承javax.sw

5、ing包中的 JApplet类,也可以继承老的AWT组件中的Applet类, JApplet类属于新的Swing组件提供了applet在浏览器中运行需要具备的特定方法l浏览器载入时,要依次运行init、start、paint方法l离开浏览器页面时,执行stopl退出浏览器时,执行destroy 提供了所有这些方法的默认实现,所以我们在编写 自己的applet时,就可以不必写出全部方法,只要继承 这个JApplet,然后重写特定的方法来增加特殊功能89.2 Applet应用程序接口方法调用时机和用途 public void init()当浏览 器(即Applet容器)载入某个Applet 时,容

6、器会自动创 建这个Applet类的一个实 例,并调用它的init方法Applet应用程序接口9public void start()init方法执行结束之后,自动调 用这个方 法。另外,当浏览 器用户在访问 另一个网 址之后重新返回applet所在的HTML页时 , 将再次调用start方法 public void paint(Graphics g)start方法启动后调用此方法,另外每次需 要重绘applet时也将调用该方法。程序通 常不直接调用paint public void repaint()在响应用户和Applet的交互时经 常要用到 。通常只是调用,而不重写这个方法。对 于轻量级组

7、 件(见后),它调用组件的 paint方法,对重量级组 件它调用组件的 update方法,由update调用paint public void stop()用户离开Applet所在的HTML页时调 用该方 法,它执行挂起Applet所需的所有任务,例 如停止动画和线程 public void destroy()用户关闭浏览 器窗口,Applet将从内存中 移走的时候调用该方法9.2 Applet应用程序接口(续 )Applet应用程序接口10l轻量级组件:是用JAVA代码画出来的,这样具有平 台移植性 它使用AWT最好的部分来建立一个新的轻量组件集 ,而丢弃了AWT中有问题的重量组件部分(除J

8、Frame, JDialog, JApplet, JInternalFrame, JWindow 外 ) Swing是由100%纯Java实现的,Swing组件是用 Java实现的轻量级组件,没有本地代码,不依赖操作系 统的支持,因此Swing在不同的平台上表现一致 l重量级组件:是调用操作系统的函数画出来的组件 ,比如主窗体。 java.awt里面的是重量级的 受平台影响11lrepaint() 执行:update()方法,先刷 新屏幕(以背景填充),再调用 paint() 方法重画。l 一般可以重载update()和paint()方法12import javax.swing.*;. imp

9、ort java.awt.*;public class HelloSwingApplet extends JApplet public void init() JLabel label = new JLabel(“You are successfully running a Swing applet!“);label.setHorizontalAlignment(JLabel.CENTER);label.setBorder(BorderFactory.createMatteBorder(1,1,2,2,Color.black);getContentPane().add(label, Borde

10、rLayout.CENTER); 9.2 Applet应用程序接口(续) HelloSwingApplet.javaApplet应用程序接口139.3 绘图l图形环境和图形对象l颜色和字体l使用Graphics类绘图l使用Graphics2D类绘图149.3.1 图形环境和图形对象l坐标 GUI组件的左上角坐标默认为(0,0) 从左上角到右下角,水平坐标x和垂直坐标y增加。 坐标的单位是象素 lGraphics对象 Graphics对象是专门管理图形环境的。Graphics 类是一个抽象类 设计一个抽象类Graphics可以给程序员提供一个与 平台无关的绘图接口,因而程序员就可以以独立于平台

11、的方式来使用图形。在各个平台上实现的Java系统将创 建Graphics类的一个子类,来实现绘图功能,但是这个 子类对程序员是透明的,也就是说我们只能看得到 Graphics类,却不必关心其实现 在执行paint方法时,系统会传递一个指向特定平 台的Graphics子类的图形对象g绘 图159.3.2 颜色和字体lJava中有关颜色的类是Color类,它在java.awt包 中,这个类声明了用于操作Java程序中颜色的方法和 常量名称描述public final static Color GREEN常量 绿色 public final static Color RED常量 红色public C

12、olor(int r,int g,int b)通过指定红、蓝、绿颜 色分量(0255 ),创建一种颜色public int getRed()返回某颜色对象的红色分量值(0255)Graphics:public void setColor(Color c)Graphics类的方法,用于设置组件的颜 色Graphics:public Color getColor()Graphics类的方法,用于获得组件的颜 色绘 图169.3.2 颜色和字体lFont类有关字体控制,在java.awt包中名称描述public final static int PLAIN一个代表普通字体风格的常量public fi

13、nal static int BOLD一个代表黑体字体风格的常量public final static int ITALIC一个代表斜体字体风格的常量public Font(String name,int style,int size)利用指定的字体、风格和大小创建一 个Font对象public int getStyle()返回一个表示当前字体风格的整数值public Boolean isPlain()测试一个字体是否是普通字体风格Graphics:public Font getFont()获得当前字体Graphics:public void setFont(Font f)设置当前字体为f指定

14、的字体、风格 和大小绘 图179.3.3 使用Graphics类绘图lGraphics类 其对象可以绘制文本、线条、矩形、多边形、椭圆 、弧等多种图形名称描述 public void drawString(String str, int x, int y)绘制字符串,左上角的坐标是( x,y) public void drawLine(int x1, int y1, int x2, int y2)在(x1,y1)与(x2,y2)两点之间绘制 一条线段 public void drawRect(int x, int y, int width, int height)用指定的width和heigh

15、t绘制一个 矩形,该矩形的左上角坐标为 (x,y) public void fillRect(int x, int y, int width, int height)用指定的width和height绘制一个 实心矩形,该矩形的左上角坐标为 (x,y)绘 图18public void clearRect(int x, int y, int width, int height)用指定的width和height,以当前背景色绘 制一个实心矩形。该矩形的左上角坐标为 (x,y)public void drawRoundRect(int x, int y, int width, int height,

16、int arcWidth, int arcHeight)用指定的width和height绘制一个圆角矩形 ,圆角是一个椭圆的1/4弧,此椭圆由 arcWidth、arcHeight确定两轴长。其外切 矩形左上角坐标为(x,y)public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)用当前色绘制实心圆角矩形,各参数含义 同drawRoundRect。public void draw3DRect(int x, int y, int width, int height, boolean b)用指定的width和height绘制三维矩形,该 矩形左上角坐标是(x,y),b为true时,该 矩形为突出的,b为false时,该矩形为凹 陷的。public void fill3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号