Java面向对象程序设计与应用开发教程第一讲Java画图机制

上传人:w****i 文档编号:92360506 上传时间:2019-07-09 格式:PPT 页数:29 大小:285.50KB
返回 下载 相关 举报
Java面向对象程序设计与应用开发教程第一讲Java画图机制_第1页
第1页 / 共29页
Java面向对象程序设计与应用开发教程第一讲Java画图机制_第2页
第2页 / 共29页
Java面向对象程序设计与应用开发教程第一讲Java画图机制_第3页
第3页 / 共29页
Java面向对象程序设计与应用开发教程第一讲Java画图机制_第4页
第4页 / 共29页
Java面向对象程序设计与应用开发教程第一讲Java画图机制_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《Java面向对象程序设计与应用开发教程第一讲Java画图机制》由会员分享,可在线阅读,更多相关《Java面向对象程序设计与应用开发教程第一讲Java画图机制(29页珍藏版)》请在金锄头文库上搜索。

1、1,Java画图机制,2,介绍Java画图的方法与技术,具体包括Java画图基础知识;重点介绍使用Java语言进行二维图形的绘制,包括椭圆、矩形、多边形和线段等图形。,Java画图基础 事件机制和画图机制 线程机制和画图机制 本讲重点: 掌握Java画图机制基本概念与应用,本讲概要,例1 一个简单的awt窗体代码,import java.awt.*; public class MyCanvas_1 extends Frame /无参的构造方法 public MyCanvas_1() public static void main(String args) MyCanvas_1 frm=new

2、MyCanvas_1(); frm.setSize(600,400); frm.setVisible(true); ,例2 在窗体中绘图画出一个矩形,import java.awt.*; public class MyCanvas_2 extends Frame /具体的画图方法,覆盖了父类中的同名方法 public void paint(Graphics g) /对象g相当于画笔 /画图的默认颜色是黑色 /drawRect()是对象g的成员方法,绘制一个矩形 /矩形的左上角坐标是(100,150) /宽300,高200 /原点位于窗口的左上角 g.drawRect(100,150,300,2

3、00); public static void main(String args) MyCanvas_2 frm=new MyCanvas_2(); frm.setSize(600,400); frm.setVisible(true); ,结果分析,坐标(100,150),原点坐标,宽300,高200,关于paint()方法,paint()方法的调用是由系统自动完成了。 当Frame窗体显示或被激活的时候,系统就自动调用该方法进行绘图。 我们编程人员就不必关心paint()方法调用的细节问题。 专注于paint()方法内部绘图逻辑的实现就可以了,这是面向对象的好处之一。,paint()的所在类

4、,Frame Window Container paint() paint()方法存在于Container类中 Frame多层继承了Contianer 自定义的paint()方法“覆盖了”Contianer中的paint()方法 paint()方法由窗体自动调用,例3 填充矩形,import java.awt.*; public class MyCanvas_3 extends Frame /具体的画图方法,覆盖了父类中的同名方法 public void paint(Graphics g) /对象g相当于画笔 /画图的默认颜色是黑色 /fillRect()是对象g的成员方法,填充一个矩形 /矩

5、形的左上角坐标是(100,150) /宽300,高200 /原点位于窗口的左上角 g.fillRect(100,150,300,200); public static void main(String args) MyCanvas_3 frm=new MyCanvas_3(); frm.setSize(600,400); frm.setVisible(true); ,改变画笔颜色,Graphics类默认的画笔颜色是黑色,我们可以调用该类提供的方法改变画笔颜色,画出五颜六色的图像,改变画笔颜色的方法是setColor()方法,该方法的格式如下所示: public void setColor(ja

6、va.awt.Color color); 该方法只有一个参数,参数类型是Color,Color是一个颜色类,通过RGP数值进行定义,当然对于常用的一些颜色如红黄蓝等等,Color提供了一些静态对象与之对应: Color.RED:红色对象 Color.BLUE:蓝色对象 Color.YELLOW:黄色对象 Color.BLACK:黑色对象 .,例4 改变画笔颜色的代码,import java.awt.*; public class MyCanvas_4 extends Frame /具体的画图方法,覆盖了父类中的同名方法 public void paint(Graphics g) /设置画笔颜色

7、为蓝色 g.setColor(Color.blue); /填充一个矩形 g.fillRect(100,150,300,200); /设置画笔颜色为红色 g.setColor(Color.red); /绘制矩形边框 g.drawRect(100,150,300,200); public static void main(String args) MyCanvas_4 frm=new MyCanvas_4(); frm.setSize(600,400); frm.setVisible(true); ,绘制椭圆形和圆形,画矩形和填充矩形的方法分别是drawRect()和fillRect() 画椭圆形

8、和填充椭圆形的方法分别是drawOval()和fillOval() 其中Oval表示椭圆 圆形可以看成是短轴和长轴相等的特殊椭圆形。 drawOval()和fillOval()都是Graphics类的成员方法,两个方法的格式如下所示: public void drawOval(int x,int y,int width,int height); public void fillOval(int x,int y,int width,int height); 其中(x, y)表示椭圆外接矩形的左上角坐标,width和height分别表示外接矩形的宽和高,例5 绘制矩形和椭圆,import java

9、.awt.*; public class MyCanvas_5 extends Frame /具体的画图方法,覆盖了父类中的同名方法 public void paint(Graphics g) /设置画笔颜色为红色 g.setColor(Color.red); /绘制一个矩形边框 g.drawRect(100,150,300,200); /设置画笔颜色为蓝色 g.setColor(Color.blue); /绘制一个椭圆 g.drawOval(100,150,300,200); public static void main(String args) MyCanvas_5 frm=new My

10、Canvas_5(); frm.setSize(600,400); frm.setVisible(true); ,运行效果(内接圆和外接矩形),绘制线段,绘制线段的方法是drawLine()方法,线段不能填充,因此没有对应的fillLine()方法。drawLine()方法的定义如下所示: public void drawLine(int x1,int y1,int x2,int y2); 其中(x1, y1)、(x2, y2)分别对应线段的两个端点,画笔颜色对线段的绘制也起作用,例6 绘制线段,import java.awt.*; public class MyCanvas_6 extend

11、s Frame /具体的画图方法,覆盖了父类中的同名方法 public void paint(Graphics g) g.setColor(Color.red); g.drawLine(100,100,200,200); public static void main(String args) MyCanvas_6 frm=new MyCanvas_6(); frm.setSize(600,400); frm.setVisible(true); ,绘制三角形和多边形,绘制多边形和填充多边形的方法分别是drawPolygon ()方法和fillPolygon()方法,其中英文单词Polygon的

12、意思是多边形的意思。两个方法的定义如下所示: public void drawPolygon(int xs, int ys, int lineNumber); public void fillPolygon(int xs, int ys, int lineNumber); 方法有三个参数,其中xs和ys是两个整型数组,分别表示多边形所有点的x轴坐标和y轴坐标,xs的元素和ys的元素一一对应,比如xs0和ys0对应,xsi和ysi对应;第三个参数lineNumber表示多边形点的数量。三角形是一个特殊的多边形。,例7 绘制三角形和多边形,import java.awt.*; public cla

13、ss MyCanvas_7 extends Frame /具体的画图方法,覆盖了父类中的同名方法 public void paint(Graphics g) g.setColor(Color.blue); int xs=60,150,170; int ys=60,50,150; g.drawPolygon(xs,ys,3); g.setColor(Color.red); int xs2=200,300,350,300,200; int ys2=200,200,250,300,240; g.fillPolygon(xs2,ys2,5); public static void main(Strin

14、g args) MyCanvas_7 frm=new MyCanvas_7(); frm.setSize(600,400); frm.setVisible(true); ,Java画图与事件机制,而从游戏的角度出发,绘制静态图形不是我们的最终目的,游戏的一个特点是交互性很强,玩家可以通过操作鼠标或键盘控制图形的变化(图形移动、图形变形等等),以此来表达游戏逻辑和游戏可玩性。而Java语言对于鼠标、键盘等外设的控制是通过事件机制实现的,例8 控制图形移动,package demo; import java.awt.*; public class MyCanvas_8 extends Frame

15、/定义变量x和y,为矩形的左上角坐标 int x=100,y=100; public void paint(Graphics g) /设置颜色为蓝色 g.setColor(Color.blue); /用x和y的值来指定矩形左上角坐标 g.fillRect(x,y,50,50); public static void main(String args) MyCanvas_8 mc=new MyCanvas_8(); mc.setSize(600,400); mc.show(); ,思 考,这段代码改动不大,仅仅定义了变量x和y,作为矩形的左上角坐标。现在可以思考一下,如果在程序运行过程中动态的改

16、变x和y的值,是不是可以改变矩形的位置?,例9 使用事件机制控制移动,package demo; import java.awt.*; import java.awt.event.*; public class MyCanvas_9 extends Frame public MyCanvas_9() class KeyEve implements KeyListener public void keyTyped(KeyEvent e) /通过e.getKeyChar();得到当前的按键 char key=e.getKeyChar(); if(key=a) x-;/向左移动 else if(key=

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

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