第2章 窗体图形图像处理与Applet程序设计
Java语言程序设计(Applet、用户界面设计)ppt_OK

2021/8/22
20
绘制图形
1. 设置字体
– java.awt.Font类 – 设置文本的字体(包括字型和字号) – 构造方法
• public Font(String name, int style int size)
2. 设置颜色
– java.awt.Color类 – 控制颜色,Color类已包含13个颜色常量 – 构造方法
15
HTML文件
• 超文本标记语言(HTML) – <Html>和</Html> • Html文件开始和结束的标记 – <Head>和</Head> • WWW浏览器窗口标题内容的标记 – <Body>和</Body> • Html文件在浏览器窗口中显示内容的标记 – <Applet>和</Applet> • 嵌入到Html文件中Applet程序的标记
• public Color(int r, int g, int b) • public Color(float r1, float g1, float b1)
2021/8/22
21
绘制图形
3. 绘制文本 – 绘制字符串 • public void drawString(String s, int x, int y) – 绘制字符 • public void drawString(char c[], int offset, int number int x, int y) – 绘制字节 • public void drawString(byte b[], int offset, int number int x, int y)
Java语言程序设计
java 程序设计 08-图形与多媒体

二.绘图类及其基本使用方式 1. java.awt.Graphics ① 该类包含了基本的图形绘制和操作方法 ② 其对象表示一个可在里边绘制内容的环境 ③ 该对象一般由paint或paintComponent方法作 为参数由系统自动提供,一般不需单独创建 ④ 必要时可使用方法getGraphics()获得
济南大学 信息科学与工程学院 2006
3. 常用方法 ① URL getCodeBase(); ② URL getDocumentBase(); ③ String getParameter(String); ④ Image getImage(URL); Image getImage(URL,String); ⑤ AudioClip getAudioClip(URL); AudioClip getAudioClip(URL,String); //AudioClip: play(); stop(); loop(); ⑥ static AudioClip newAudioClip(URL); static AudioClip newAudioClip(URL, String); ⑦ void play(URL); void play(URL,String); ⑧ AppletContext getAppletContext(); ⑨ void showStatus(String);
济南大学
信息科学与工程学院
2006
三.图形的绘制 1. 需要导入的基本包 import java.awt.*; import java.awt.geom.*; import javax.swing.*; 2. 设置颜色 g2d.setColor(Color); //设置绘图色 g2d.setBackground(Color); //设置背景色 3. 设置字体 g2d.setFont(Font);
窗体图形图像处理与Applet程序设计

}
Update()方法一般和paint(),repaint()方法结 合起来使用
Repaint()方法
我们用paint()方法绘图后,可能要修改画面,这是 就调用repaint()方法。 Repaint()方法分两步执行:
先执行update()方法清除画面 调用paint()方法对组件进行重绘 Repaint() 没有参数,立即对组件进行重绘。 Repaint(x,y,width,height)表示有顶点坐标、宽、高 参数的重绘 Repaint(long tm)表示延迟时间,调用这个方法将在tm毫 秒内进行重绘 Repaint(long tm, x,y,width,height )有参数、延迟 的重绘
Update()方法
用于更新组件。AWT调用此方法以相应对repaint() 的调用,在调用update或paint方法之前,组件的外 观将不会发生改变。 其步骤为:
填充组件的背景色来清除该组件 设置图形的颜色为该组件的前景色 调用paint()方法完整地重绘该组件
Public void update(Graphics g) {
Repaint()方法有四个重载方法
Repaint方法一般在某个事件中发生
Public void mouseClicked(MouseEvent e) {
Repaint();
}
DEMO
用鼠标绘制图形 步骤:
需要三个事件:按下鼠标、移动鼠标、释放鼠标。 Paint()方法:drawLine update()方法:实现paint方法 移动鼠标时,重绘图形,实现repaint方法 按下鼠标时,获取当前点的坐标,作为drawLine的起点坐标 移动鼠标时,判断鼠标状态是否为按下,如为,则获取当前 点坐标作为终止坐标,同时将该点作为下一条线的起始坐标。 实现repaint方法 释放鼠标时,画图结束。
第2章 图形用户界面设计优秀课件

text3=new TextField("我是一个文本框",20);
▪
12.
add(text1); //将文本框添加到Applet中
▪
15.
add(text2);
▪
16.
add(text3);
▪
17.
text3.setText("重新设置了文本");
▪
18. }
▪
19. }
3、TextAear类
▪ 文本区TextArea是对多行文本进行编辑的组件, 它拥有水平或垂直的滚动条 .
Applet的定义
▪ public class Applet extends Panel ▪{ ▪ public Applet(); ▪ public void start(); ▪ public void stop(); ▪ public URL getDocumentBase(); ▪}
Java Applet程序的一般形式
功能 设置文本内容 获取文本内容 检测文本的可编辑性 检测文本的可编辑性 获取选取文本内容 选取文本内容
2、TextField类
▪ ⑴文本框TextField 是对单行文本进行编辑的组件。 它用来接受用户的输入码或显示可编辑的文本。
▪ ⑵创建文本框 TextField text = new TextField(String str);
Java Applet程序的运行
▪ <HTML> ▪ <APPLET CODE="A.class" ▪ WIDT;300"> ▪ </APPLET> ▪ </HTML>
2.1.2 awt类包
javac08Applet和图形编程

Dialog
Applet
在java.applet包中 java.awt包中类的关系
12
Designed by Chiyong,©2005
Applet对象的坐标系
X轴
Y轴
13
Designed by Chiyong,©2005
将applet 嵌入到 HTML
•applet源文件首先用 Java 编译器编译: 源文件首先用 编译器编译: javac OurApplet.java •为使一个 为使一个applet 能在浏览器中显示,我们必须使用 HTML 能在浏览器中显示, 为使一个 脚本描述. 脚本描述 •将applet嵌入到 HTML 页中的代码如下 : 将 嵌入到 < applet CODE = “OurApplet . class” WIDTH = 200 HEIGHT = 300 > < / applet > 可以将上面的代码保存为 “Myapplet.html”
Browser显 显 示该文档
放到网上的文件,首先要使用HTML进行编写。 然后这些HTML文档被上载(uploaded)到站点上。 ) 这些文档能被网上的任何用户通过浏览器来观看其 内容。
6
Designed by Chiyong,©2005
Java applet
编写网页的问题: 使用 HTML 编写网页的问题 其表示的内容是静态的。 其表示的内容是静态的。 只用于定位,不能显示动画。 只用于定位,不能显示动画。
我们能够写一个 applet 来显示移动的文本和图象。
Displaying moving images and text
8
Designed by Chiyong,©2005
二级JAVA笔试-编写图形用户界面、Applet程序设计

二级JAVA笔试-编写图形用户界面、Applet程序设计(总分:100.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:48,分数:100.00)1.下列适配器中不属于事件适配器类的是______。
∙ A.MouseAdapter∙ B.KeyAdapter∙ ponentAdapter∙ D.FrameAdapter(分数:2.00)A.B.C.D. √解析:[解析] MouseAdapter是鼠标适配器,KeyAdapter是键盘适配器,ComponentAdapter是构件适配器,它们均属于事件适配器。
FrameAdapter不属于事件适配器。
2.Panel类的默认布局管理器是______。
∙ A.BorderLayout∙ B.CardLayout∙ C.FlowLayout∙ D.GridBagLayout(分数:2.00)A.B.C. √D.解析:[解析] FlowLayout是Panel和Applet的默认布局管理器。
3.下列叙述中,错误的是______。
∙ A.JButton类和标签类可显示图标和文本∙ B.Button类和标签类可显示图标和文本∙ C.AWT构件能直接添加到顶层容器中∙ D.Swing构件不能直接添加到顶层容器中(分数:2.00)A.B. √C.D.解析:[解析] JButton类属于Swing构件,可以显示图标和文本;而Button类属于AWT构件,只能显示文本。
4.下列事件监听器中,无法对TextField对象进行事件监听和处理的是______。
∙ A.ActionListener∙ B.FocusListener∙ C.MouseMotionListener∙ D.ChangeListener(分数:2.00)A.B.C.D. √解析:[解析] 生成TextField对象时,按Enter键,会发生ActionEvent事件,此时调用Action-Listener 接口;当鼠标移动时,会发生MouseEvent事件,此时调用MouseMotionListener接口;当鼠标指针离开TextField对象时,会发生FocusEvent事件,此时调用FocusListener接口。
等级考试二级JAVA考点分析之APPLET程序设计
等级考试二级JAVA考点分析之APPLET程序设计等级考试二级JAVA考点分析之APPLET程序设计10.1 Applet的基本概念考点:1Applet的概念(1)Applet是指嵌入HTML文件中,能够运行于浏览器的Java类。
(2) Applet不能独自运行,执行方式是在浏览器或者Appletviewer中运行。
(3) Applet的运行环境是浏览器,需要编写HTML文件,并嵌入Applet类,浏览器才会加载与运行Applet。
(4)Applet的执行过程包括:首先在浏览器中加载URL所指定的HTML文件,然后在浏览器中解析HTML 文件,再加载HTML文件中嵌入的Applet类,最后在浏览器的Java运行环境中运行加载的Applet类。
考点:2Applet的生命周期(1)Applet生命周期是指从浏览器下载Applet一直到用户终止Applet运行的过程。
(2)Applet生命周期包括创建、运行和消亡。
(3)加载Applet到本地系统时,会产生一个Applet类的实例,然后对Applet进行初始化,最后启动Applet 进入运行状态。
(4)离开Applet所在的Web页或者退出浏览器时,Applet停止运行。
(5)当又返回Applet所在的Web页时,Applet重新加载。
(6)刷新Applet所在的Web页时,浏览器首先卸载该Applet,然后再重新加载。
考点:3Applet的类层次结构(1)java.applet.Applet是java.awt.panel的直接子类,而javax.swing.JApplet是java.applet.Applet 的直接子类。
(2) java.applet.Applet类定义了Applet与其运行环境之间的标准接口,任何Applet必须是它的子类。
(3)Applet中可以加入A WT构件,JApplet中可以加入Swing构件。
考点:4Applet类的API以及关键方法(1)生命周期方法包括:init(),start()、stop()和destroy()。
java编程语言课件第九讲图形图像处理和Applet应用程序
多媒体处理和Applet应用小程序
2、绘制矩形
drawRect(int x,int y, int width,int height) fillRect(int x,int y, int width, int height) draw3DRect(int x,int y, int width, int height, boolean raised) fill3DRect(int x,int y,int width, int height, boolean raised) drawRoundRect(int x,int y,int width,int height, int arcWidth,int
(x,y)为轴点旋转number个弧度
如把一个矩形绕点(100,100)旋转60度,方法如下:
• trans.rotate(60. 0.3.1415927/180,100,100);
最后将Graphics对象设置为具有trans这种功能的“画笔 Case:Test9-4.java
多媒体处理和Applet应用小程序
4、绘制圆弧和扇形
drawOval(int x,int y, int width,int height,int StartAngle, int arcAngle) fillOval(int x,int y, int width,int height,int StartAngle, int arcAngle)
多媒体处理和Applet应用小程序
Start()方法
启动 : start()
初始化之后,接着自动调用 start()方法.在程序的执 行过程中,init()方法只被调用执行一次.但 start()方 法将多次被自动调用执行.除了进入执行过程时调用 方法 start()外 ,当用户从 applet 所在的 Web 页面 转到其它页面,然后又返回时,start()将再次被调用, 但不再调用init()方法.
图形化用户界面和Applet解析
图形化用户界面和Applet12计本2班侯亚飞1204012018Java语言的程序有两种基本形式,一种是Application程序,另一种是Applet 小程序。
Applet可以翻译为小应用程序,Java Applet就是用Java语言编写的这样的一些小应用程序,它们可以直接嵌入到网页中,并能够产生非凡的效果。
包含Applet的网页被称为Java-powered页。
可以称其为Java支持的网页。
当用户访问这样的网页时, Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。
由于Applet是在用户的计算机上执行的,因此它的执行速度不受网络带宽或者Modem存取速度的限制。
用户可以更好地欣赏网页上Applet产生的多媒体效果。
在Java Applet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。
Applet还提供了名为抽象窗口工具箱(Abstract Window Toolkit, AWT)的窗口环境开发工具。
AWT利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。
目前,在网络上有非常多的Applet范例来生动地展现这些功能,读者可以去调阅相应的网页以观看它们的效果。
Applet与Application区别概述:Java Application:只有一个程序入口—main方法,通过JVM调用执行。
Java Applet:是嵌入到网页中由浏览器调用执行的,其中不必包含main方法。
小应用程序的书写格式:import java.applet.*;public class MyApplet extends Applet{}将小应用程序源文件编译成字节码文件,编写html文件,使用<applet> 标签将字节码文件嵌入其中,用浏览器打开html文件或者用appletviewer小程序浏览器。
窗体图形图像处理与Applet程序设计
职业教育高端品牌
实践项目——<单机版五子棋>
程序的实现要求如下:
设计一个大小合适的窗体,并加载棋盘图片到窗体中 鼠标点击的时候在窗体(棋盘)中能交互的实现黑白棋子的 绘制(要求黑子先下) 绘制的时候画面不要出现闪烁现象 要求每次点击棋子能够定性地绘制在棋盘的两线交点处
职业教育高端品牌
本章总结
窗体绘制paint()方法、update()方法、 repaint()方法等 Toolkit类的方法和应用 Graphics类的方法和应用
职业教育高端品牌
第一种:paint()方法 paint()方法在Component类中定义,当同样继承Component类的GUI对 象需要绘图时,Graphics类的对象g会自动传给paint()方法。作为paint()方法 的参数传进来的Graphics对象是一个绘图面板。你可以通过重载此方法来定 制组件的绘制方式。 public void paint(Graphics g) { super.paint(g); g.drawString(“这是一个字符串…”,50,100); } 在Graphics类中提供了很多的绘图方法,比如: void drawLine(int x1,int y1,int x2,int y2) 此方法将点(x1,y1)到点(x2,y2)之间划出一条线段,该线段宽度为一个像素。 void drawRect(int x,int y,int width,int height) 该方法用于绘制标准的矩形,参数x、y指定矩形左上角(顶点)的位置, 参数width、height用来指定矩形的宽度和高度。 void fillRect(int x,int y,int width,int height) 该方法用黑色绘制并填充一个标准矩形,其参数意义与drawRect()方法 相同。 另外还有很多的方法,我们在此就不一一列举了,大家可以在课外把 其它的方法总结出来进行探讨。 职业教育高端品牌
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二种:update()方法
update()方法用于更新组件,AWT调用该方法以响应对repaint() 的调用,在调用update()或paint()方法之前,组件的外观将不会发生 改变。它更新组件的步骤为:通过填充组件的背景色来清除该组件, 然后,设置图形上下文(其原点为该组件的左顶点)的颜色为该组件 的前景色,最后,调用paint()方法完整地重绘该组件。 public void update(Graphice g) { this.paint(g); }
(3)字体处理
在JAVA中Font类代表字体。创建一个字体类对象: Font myfont=new Font(字体名,字型,字号); 字体类对象中包含的主要信息:字体名、字型、字号。 在字体处理中常用的方法如下: String getName():获取字体对象的字体名信息。 String getFamily():获取字体对象的字体族信息。 int getStyle():获取字体对象的字型信息。 int getSize():获取字体对象的字号信息。 获取Graphics类对象g的字体属性:Font cur_font=g.getFont(); 设置图形类对象的字体:g.setFont(字体对象) Font信息的读取: String[] str=toolkit. getFontList();
import java.awt.*; public class LoadPic extends Frame { public LoadPic() { super("五子棋棋盘"); this.setSize(435,465); } public void paint(Graphics g) { Toolkit toolkit=Toolkit.getDefaultToolkit(); Image img1=toolkit.getImage("Board.gif"); g.drawImage(img1,0,20,this); } public static void main(String args[ ]) { new LoadPic().show(); } }
实际上repaint()方法是自动调用update()方法。 update()方法和paint()方法都有一个Graphics类参数。所 以Graphics是画图的关键,它可以支持两种绘图:
一种是基本的绘图,如:画线、矩形、圆等
一种是画图像,主要用于动画制作。
三种绘图方法
第一种:paint()方法 paint()方法在Component类中定义,当同样继承Component类的GUI对 象需要绘图时,Graphics类的对象g会自动传给paint()方法。作为paint()方法 的参数传进来的Graphics对象是一个绘图面板。你可以通过重载此方法来定 制组件的绘制方式。 public void paint(Graphics g) { super.paint(g); g.drawString(“这是一个字符串…”,50,100); } 在Graphics类中提供了很多的绘图方法,比如: void drawLine(int x1,int y1,int x2,int y2) 此方法将点(x1,y1)到点(x2,y2)之间划出一条线段,该线段宽度为一个像素。 void drawRect(int x,int y,int width,int height) 该方法用于绘制标准的矩形,参数x、y指定矩形左上角(顶点)的位置, 参数width、height用来指定矩形的宽度和高度。 void fillRect(int x,int y,int width,int height) 该方法用黑色绘制并填充一个标准矩形,其参数意义与drawRect()方法 相同。 另外还有很多的方法,我们在此就不一一列举了,大家可以在课外把 其它的方法总结出来进行探讨。
repaint(int x,int y,int width,int height)
repaint(long tm)
repaint(long tm,int x,int y,int width,int height) repaint()方法一般在事件中直接调用即可。
Toolkit类及应用
Toolkit类介绍 Toolkit类是一个抽象类,它是一个AWT工具箱,提 供对本地GUI最低层次的JAVA访问,例如从系统获得图 形信息的方法、获取可显示的字体集和屏幕分辨率等等。 Toolkit常用的方法如下:
第二章
窗体图形图像处理与Applet程序设计
课程目标
窗体绘制paint()方法、update()方法、 repaint()方法等 Toolkit类的方法和应用 Graphics类的方法和应用 Applet小程序的方法,生命周期,实践 以及应用
体验项目——<单机版五子棋游戏>
在棋盘中点击鼠标可以交替绘制黑白棋 子进行五子棋游戏,如图所示 :
窗体绘制
一般来说,绘图是指在Frame、Applet以及JFrame、 JApplet等程序主窗口上进行直线、矩形、多边形、椭圆 形以及文字的绘制和进行封闭区域的颜色填充等操作。
AWT的绘图机制主要涉及三个方法: paint()方法: 进行绘图的具体操作,可以通过重载此方法来 实现图形绘制。 update()方法: 用于更新图形,先清除背景、前景,然后再调 用paint()方法。 repaint()方法: 用于重绘图形在组件外形发生变化,即大小改 变或位置移动时,repaint()方法立即被系统自 动调用。
(3)stop()方法
多次执行,在离开主页时执行,主要功能是停止一些耗用系统 资源的工作。
停止和启动是成对出现的。浏览器从当前页面跳转到其他页面 时,将会调用stop()方法。该方法通常用于停止当前页面的活动线程, 以便节省系统资源。也可自己以通过调用该方法使Applet自己来停止。 重载stop()方法如下: public void stop() { // Do something… }
注意:update()方法一般和paint()方法以及repaint()方法相结合起来使用
第三种:repaint()方法
我们用paint()方法绘图后,有可能要修改画面,这时必须调用 repaint()方法。repaint()方法分两步执行,它会先执行update()方法清 除画面,再调用paint()方法对组件进行重绘。 repaint()方法有四个重载方法: repaint()
与一般的JAVA应用程序不同,Applet不是通过main() 方法来运行的。在运行时Applet通常会与用户进行互动, 显示动态的画面,并且还会遵循严格的安全检查,阻止潜 在的不安全因素(例如根据安全策略,限制Applet对客户 端文件系统的访问)。
Applet的语言特点
类的定义如:public class AppletApp extends Applet Applet依赖于浏览器的调用,通过<Applet>标记嵌入在HTML 文件中。如: < Applet code = " AppletApp.class" width= "500" height= "300" ></ Applet > <Applet>标记的作用是在网页上加载Applet小程序,<Applet>标 记的code属性指明网页上加载的Applet的类文件名称,width和height 属性分别决定了Applet小程序的宽度和高度。
Toolkit类的应用
用Toolkit获取图形或者屏幕信息等,首先需要获得一个Toolkit 对象,由于Toolkit类是一个抽象类,不能直接生成对象,所以要调用 getDefaultToolkit()方法,如: Toolkit toolkit =Toolkit. getDefaultToolkit(); 获取一个缺省的Toolkit工具箱。 (1)获取图形 Image image1 = toolkit.getImage("imageFile.gif"); //从本地文件中获取图像 Image image2 = toolkit.getImage(new URL("/intl/zhCN/images/logo_cn.gif ")); //从URL获取图像 (2)获取屏幕信息 Dimension screenSize = toolkit.getScreenSize(); //获取全屏幕的大小 int screenW=screenSize.width; //获取全屏幕宽度 int screenH=screenSize.higtht; //获取全屏幕高度
Graphics类及应用
Graphics类位于java.awt包中,它提供了大量的基本 图形绘制、字符串的显示、颜色和字体的设置等方法。 Graphics类是一个抽象类,是所有绘图图形和字形的 基础类。它被设计成抽象类是为了达到跨平台的目的,因 为支持JAVA作业的平台必须实现Graphics类,而且该类 的实现与具体平台的关系十分密切。把Graphics类做成抽 象类,目的就在于我们只需要会用Graphics类的对象就可 以了,那些与操作平台密切相关的实现,对我们而言都是 被隐藏起来的。
Applet程序的主要方法
在介绍Applet程序的生命周期之前,我们先介绍Applet类的几个 常用方法,它们也是Applet主类所要重载的方法: (1)init()方法,创建Applet时执行,只执行一次 当一个新的小程序被浏览器加载,第一个被执行的方法就是init() 方法,目的就是对Applet实例对象进行初始化设置。初始化工作可能 包含创建Applet所需要的对象、设置初始状态、加载图像或者文字、 设置参数等等。参考代码如下: public void init() { Color barColor=new Color(64,128,128); setBackground(barColor); } 在Applet初始化的时候就设置好背景色了。