L08 图形处理与applet.docx

上传人:b****6 文档编号:6357410 上传时间:2023-01-05 格式:DOCX 页数:13 大小:142.89KB
下载 相关 举报
L08 图形处理与applet.docx_第1页
第1页 / 共13页
L08 图形处理与applet.docx_第2页
第2页 / 共13页
L08 图形处理与applet.docx_第3页
第3页 / 共13页
L08 图形处理与applet.docx_第4页
第4页 / 共13页
L08 图形处理与applet.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

L08 图形处理与applet.docx

《L08 图形处理与applet.docx》由会员分享,可在线阅读,更多相关《L08 图形处理与applet.docx(13页珍藏版)》请在冰豆网上搜索。

L08 图形处理与applet.docx

L08图形处理与applet

L8《图形处理与Applet》上机手册

1.内容回顾(3-5分钟)

回顾本讲内容?

不要照搬ppt中的课程目标,应该体现自己的水平

窗体绘图主要用到那几个方法?

它们之间的相互调用过程是什么样的?

如何修改窗体中的字体?

Toolkit类的作用是什么?

提供了那些耗用的方法

Graphics类中提供了那些常用的画图方法?

什么是Applet?

Applet的生命周期是什么?

如何在网页中显示Applet功能?

2.上机目标

列出本讲通过上机应该掌握的内容,达到什么要求,不要照搬ppt中的大纲

掌握gui中窗体绘图方法的实现,并理解三个方法之间的调用过程

掌握Toolkit类中的常用方法

掌握classpath环境变量的使用

体验java小应用程序的开发流程,编译并运行

掌握如何使用注释及通过注释生成帮助文档

3.上机任务

列出本讲的所有上机题目,包括指导练习、课堂练习、课外练习

创建一个Frame,设置该Frame的背景颜色为黄色Yellow,设置Title为“画线和字符串示例”。

(30分钟)

实现一个Applet,在该Applet中有两个按钮,分别为“变圆”、“变方”,当我们按按钮后,界面中的图形也会随着发生变化(30分钟)

使用线程与画图实现字符串自屏幕右向左移动(20分钟)

如果要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现(40分钟)

实现五子棋的功能,且鼠标左键下棋,鼠标右键是悔棋,但双方最多只能悔三步棋?

4.指导练习

带领学员完成的练习,如安装配置、知识点练习、重点难点

4.1.创建一个Frame,设置该Frame的背景颜色为黄色Yellow,设置Title为“画线和字符串示例”

说明解答步骤,每步的含义及解析

1.创建一个Frame,设置该Frame的背景颜色为黄色Yellow,设置Title为“画线和字符串示例”:

程序运行效果如下

2.技术分析

总体上来说界面还是一个Frame

na.通过setBackground(Color.YELLOW)方法来实现设置窗体背景色

nb.通过重写paint()方法来画直线与写字符串

nc.通过Graphics类中的drawString(str,x,y)方法写字符串

nd.通过Graphics类中的drawLine(x1,y1,x2,y2)方法画线

3.参考代码

importjava.awt.*;

publicclassDrawLineStrextendsFrame{

publicDrawLineStr(){

super("画线和字符串示例");

this.setSize(180,160);

this.setBackground(Color.YELLOW);

this.setVisible(true);

}

publicvoidpaint(Graphicsg){

g.drawString("这是一个字符串",20,40);

g.drawString("这是一个条线段",20,150);

g.drawLine(10,150,150,10);

}

publicstaticvoidmain(Stringargs[]){

newDrawLineStr();

}

}

4.功能扩充

将该程序补充完整,实现窗口关闭事件

4.2.实现一个Applet,在该Applet中有两个按钮,分别为“变圆”、“变方”,当我们按按钮后,界面中的图形也会随着发生变化

1.运行效果如下

2.技术分析

a.本要求是要实现一个Applet,所以必须自己创建的类必须继承Applet。

b.通过触发按钮来实现图形的变化,所以在实现中需要通过gui的事件处理机制,我们可以选择在按钮的基础上实现监听来实现。

当然最简单的就是实现ActionListener接口,并实现actionPerformed方法;

c.如何在窗体中改变显示的图片?

这个需要让图形重新绘画自己,我们可以使用paint()方法来让窗体重新绘画

3.参考代码

importjava.awt.*;

importjava.applet.*;

importjava.awt.event.*;

importjava.awt.event.ActionListener;

importjava.util.EventListener;

publicclassAppletAppextendsApplet

implementsActionListener{

Stringdrawing;

Buttonbutton1;

Buttonbutton2;

publicvoidinit(){

drawing="";

button1=newButton("变圆");

button2=newButton("变方");

this.setLayout(newFlowLayout());

this.add(button1);

this.add(button2);

//this.setBackground(Color.red);

}

publicvoidstart(){

button1.addActionListener(this);

button2.addActionListener(this);

}

/**

*重写paint()方法,实现页面重写

*/

publicvoidpaint(Graphicsg){

if(drawing.equals("circle")){

g.drawOval(50,50,80,80);

}

if(drawing.equals("fang")){

g.drawRect(50,50,80,80);

}

}

/**

*实现按钮监听

*/

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==button1){

drawing="circle";

this.repaint();

}

if(e.getSource()==button2){

drawing="fang";

this.repaint();

}

}

}

4.扩充知识

我们在前面第一次课的时候已经给大家举过一次使用applet的例子,我们说过applet是java小应用程序,而且java小应用程序是一般都是在网页中运行的,如何将一个applet运行在html页面中?

这个就需要在html页面中使用标签来实现。

如下代码,将该程序保存为applet.html文件,运行后,可以在页面中来看到运行的效果

在此处有有两点需要指出:

a.code指定的是要加载的class文件;所以必须是类名.clss;

b.原程序中没有指定包名,所以此处的code也不需要包名,且编译后生成的class文件与html文件放在一个目录下

4.3.使用线程与画图实现字符串自屏幕右向左移动

1.使用线程与画图实现字符串自屏幕右向左移动,运行效果如下

2.技术分析

a.从上图的运行效果我们可以看出,移动的字符串内容是没有变化的,只是相对位置发生了变化;

b.如何在截面中显示字符串,我们在前面已经可以使用g.drawString(s,x,y)来实现;

c.如何动态从右向左变化?

其实只是让x坐标定时发生变化而已,y坐标不变。

那如何定时发生变化?

我们可以使用线程类实现。

还记得Thread.sleep(100)这个方法吗,可以让程序暂时停止运行0。

1秒。

3.参考代码

importjava.awt.*;

publicclassTestMoveextendsFrame{

intx=160,y=80;

publicTestMove(){

super("字符串动画");

this.setBackground(Color.yellow);

this.setSize(180,160);

}

publicvoidpaint(Graphicsg){

g.setColor(Color.red);

g.drawString("ThisisatestofStringmove...",x,y);

try{

//休眠100毫秒

Thread.sleep(100);

}catch(Exceptione){

}

//x坐标减10,即向左移动

x-=10;

if(x<-160){

x=160;

}

//重新绘画

repaint();

}

publicstaticvoidmain(Stringargs[]){

newTestMove().setVisible(true);

}

}

4.功能扩展

根据上面的提示代码,自己动手,做个复杂点的功能,并能在html页面中运行

5.课堂练习

在上机课由学员自己完成的练习,一般需要给出思路、步骤、重点代码

5.1.如果要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现

1.本题考察如下几个编程思想:

1)如何使用Graphics进行基本的画图

2)如果是在一个系统中来实现,那么我们需要将这些常用的方法进行简单的封装,这样可以重用;例如作成可重用组件的方法

3)如果只是个小型系统或功能,我们可以使用鼠标直接在画板上来实现;这样我们需要实现鼠标事件

//画点:

没有直接画点的方法,但如果将直接的开始与结束坐标一样就是一个点

g.drawLine(startX,startY,startX,startY);

//画线

g.drawLine(startX,startY,endX,endY);

//画矩形

g.drawRectintx,inty,intwidth,intheight)

那么在我们的实现中,矩形的长度=endX-startX;宽度=endY-startY

g.drawRect(startX,startY,endX-startX,endY-startY);

//画三角

没有直接画三角的方法,但三角就是三条首尾相连的线组成的

g.drawLine(xa,ya,xb,yb);

g.drawLine(xb,yb,xc,yc);

g.drawLine(xc,yc,xa,ya);

2.部分参考代码

a.在Applet上实现画图,并根据鼠标的起落来实现坐标的值

b.初始化坐标

c.判断鼠标的操作

d.纪录鼠标松开时候的坐标

e.重写panit方法

f.重写update方法,调用paint()方法

g.其他辅助方法

h.启动运行

6.课外练习

由学员课后完成,如花时间较长的题目,面试题,项目中的功能,扩展性内容

6.1.实现五子棋的功能,且鼠标左键下棋,鼠标右键是悔棋,但双方最多只能悔三步棋?

7.常见问题

根据教学或自己备课过程中常碰到的问题及其解决方法

7.1.小应用程序和Application有什么区别

小应用程序指的是applet,applet一般是嵌套在html或jsp中的,作为web项目的客户端使用.

Application是应用程序(项目),可独立运行的.

两者最主要的区别是运行环境不同

8.相关知识

提供与本讲内容的某些知识点相关的参考资料或扩展内容与技术

8.1.无

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1