1、3. 上机任务列出本讲的所有上机题目,包括指导练习、课堂练习、课外练习创建一个Frame,设置该Frame的背景颜色为黄色Yellow, 设置Title为“画线和字符串示例”。(30分钟)实现一个Applet,在该Applet中有两个按钮,分别为“变圆”、“变方”,当我们按按钮后,界面中的图形也会随着发生变化(30分钟)使用线程与画图实现字符串自屏幕右向左移动(20分钟)如果要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现(40分钟)实现五子棋的功能,且鼠标左键下棋,鼠标右键是悔棋,但双方最多只能悔三步棋?4. 指导练习带领学员
2、完成的练习,如安装配置、知识点练习、重点难点4.1. 创建一个Frame,设置该Frame的背景颜色为黄色Yellow, 设置Title为“画线和字符串示例”说明解答步骤,每步的含义及解析1. 创建一个Frame,设置该Frame的背景颜色为黄色Yellow, 设置Title为“画线和字符串示例”:程序运行效果如下 2. 技术分析总体上来说界面还是一个Framen a.通过setBackground(Color.YELLOW)方法来实现设置窗体背景色n b.通过重写paint()方法来画直线与写字符串n c.通过Graphics类中的drawString(str,x,y)方法写字符串n d.通
3、过Graphics类中的drawLine(x1,y1,x2,y2)方法画线3. 参考代码import java.awt.*;public class DrawLineStr extends Frame public DrawLineStr() super(画线和字符串示例); this.setSize(180,160); this.setBackground(Color.YELLOW); this.setVisible(true); public void paint(Graphics g) g.drawString(这是一个字符串,20,40);这是一个条线段,20,150); g.draw
4、Line(10,150,150,10); public static void main(String args) new DrawLineStr();4. 功能扩充将该程序补充完整,实现窗口关闭事件4.2. 实现一个Applet,在该Applet中有两个按钮,分别为“变圆”、“变方”,当我们按按钮后,界面中的图形也会随着发生变化1. 运行效果如下a.本要求是要实现一个Applet,所以必须自己创建的类必须继承Applet。b.通过触发按钮来实现图形的变化,所以在实现中需要通过gui的事件处理机制,我们可以选择在按钮的基础上实现监听来实现。当然最简单的就是实现ActionListener接口,
5、并实现actionPerformed方法;c.如何在窗体中改变显示的图片?这个需要让图形重新绘画自己,我们可以使用paint()方法来让窗体重新绘画import java.applet.*;import java.awt.event.*;import java.awt.event.ActionListener;import java.util.EventListener;public class AppletApp extends Applet implements ActionListener String drawing; Button button1; Button button2; p
6、ublic void init() drawing=; button1=new Button(变圆 button2=new Button(变方 this.setLayout(new FlowLayout(); this.add(button1); this.add(button2); /this.setBackground(Color.red); public void start() button1.addActionListener(this); button2.addActionListener(this); /* * 重写paint()方法,实现页面重写 */ if(drawing.e
7、quals(circle) g.drawOval(50,50,80,80); fang g.drawRect(50,50,80,80); * 实现按钮监听 public void actionPerformed(ActionEvent e) if(e.getSource()=button1) drawing= this.repaint(); if(e.getSource()=button2)4. 扩充知识我们在前面第一次课的时候已经给大家举过一次使用applet的例子,我们说过applet是java小应用程序,而且java小应用程序是一般都是在网页中运行的,如何将一个applet运行在html
8、页面中?这个就需要在html页面中使用标签来实现。如下代码,将该程序保存为applet.html文件,运行后,可以在页面中来看到运行的效果 /APPLET/BODY/HTML在此处有有两点需要指出:a. code 指定的是要加载的class文件;所以必须是类名.clss;b. 原程序中没有指定包名,所以此处的code也不需要包名,且编译后生成的class文件与html文件放在一个目录下4.3. 使用线程与画图实现字符串自屏幕右向左移动1. 使用线程与画图实现字符串自屏幕右向左移动,运行效果如下a. 从上图的运行效果我们可以看出,移动的字符串内容是没有变化的,只是相对位置发生了变化;b. 如何在
9、截面中显示字符串,我们在前面已经可以使用g.drawString(s,x,y)来实现;c. 如何动态从右向左变化?其实只是让x坐标定时发生变化而已,y坐标不变。那如何定时发生变化?我们可以使用线程类实现。还记得Thread.sleep(100)这个方法吗,可以让程序暂时停止运行0。1秒。public class TestMove extends Frame int x = 160, y = 80; public TestMove() 字符串动画 this.setBackground(Color.yellow); this.setSize(180, 160); public void paint
10、(Graphics g) g.setColor(Color.red);This is a test of String move., x, y); try /休眠100毫秒 Thread.sleep(100); catch (Exception e) /x坐标减10,即向左移动 x -= 10; if (x -160) x = 160; /重新绘画 repaint(); public static void main(String args) new TestMove().setVisible(true);4. 功能扩展根据上面的提示代码,自己动手,做个复杂点的功能,并能在html页面中运行5
11、. 课堂练习在上机课由学员自己完成的练习,一般需要给出思路、步骤、重点代码5.1. 如果要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现1. 本题考察如下几个编程思想:1)如何使用Graphics进行基本的画图2)如果是在一个系统中来实现,那么我们需要将这些常用的方法进行简单的封装,这样可以重用;例如作成可重用组件的方法3)如果只是个小型系统或功能,我们可以使用鼠标直接在画板上来实现;这样我们需要实现鼠标事件/ 画点 :没有直接画点的方法,但如果将直接的开始与结束坐标一样就是一个点g.drawLine(startX, start
12、Y, startX, startY);/ 画线g.drawLine(startX, startY, endX, endY);/ 画矩形g.drawRectint x, int y, int width, int height)那么在我们的实现中,矩形的长度=endX - startX ; 宽度=endY - startYg.drawRect(startX, startY, endX - startX, endY - startY);/ 画三角没有直接画三角的方法,但三角就是三条首尾相连的线组成的g.drawLine(xa, ya, xb, yb);g.drawLine(xb, yb, xc,
13、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