教材学习内容总结
Component类有public void paint(Graphics g) | 子类重写方法 |
程序运行 | Graphics2D(Graphics的子类)将参数g实例化(专门用来绘图的实例) |
对象g在重写的print()方法的组件上绘制图形、图像等 |
1.绘制基本图形
直线 | new Line2D.Double(double x1,double y1,double x2,double y2) | 创建起点(x1,y1)到终点(x2,y2)的直线 |
矩形 | new Rectangle2D.double(double x,double y,double w,double h) | 创建一个左上角坐标是(x,y),宽是w,高是h的矩形对象 |
圆角矩形 | new RoundRectangle2D.Double(double x,double y,double w,double w,double h,double arcw,double arch) | 创建一个左上角坐标是(x,y),宽是w,高是h,圆角的长轴和短轴分别为arcw和arch的圆角矩形 |
椭圆 | new Ellipse2D.Double(double x,double y,double w,double h) | 创建一个外接矩形的左上角坐标是(x,y),宽是w,高是h的椭圆 |
圆弧 | new Arc2D.Double(double x,double y,double w,double h,double start,double extent,int type) | x、y、w、h指定椭圆的位置和大小,参数start和extent表示从start的角度开始逆时针或顺时针方向画出extent度的弧(0表示3点钟方向),参数type取值Arc2D.OPEN(开弧)、Arc2D.CHORD(弓弧)、Arc2D.PIE(饼弧) |
文本 | Graphics2D对象.drawString(String s,int x,int y) | 从参数x、y的坐标位置从左到右绘制参数s指定的字符串 |
多边形 | Polygon polygon=new Polygon() | 创建空多边形,多边形.addPoint(int x,int y)向多边形添加点 |
2.变形图形(平移、缩放、旋转)
创建对象 | AffineTransform trans=new AffineTransform() | |
变形操作 | translate(double a,double b) | 图形在x轴移动a个像素单位(a是正值向右移,反之向左移),在y轴移动b个像素单位(b是正值向下移,反之向上移) |
scale(double a,double b) | 将图形在x轴方向缩放a倍,y轴方向缩放b倍 | |
rotate(double number,double x,double y) | 沿顺时针或逆时针方向以(x,y)为轴点旋转number个弧度 |
3.图形的布尔运算
进行布尔运算前,必须为两个图形创建两个Area区域对象
例:Area a1=new Area(T1);
Area a2=new Area(T2);
“与”T1 AND T2 | 两个图形重叠部分 | pubilc void add(Area r) |
“或”T1 OR T2 | 两个图形合并 | public void intersect(Area r) |
“差”T1 NOT T2 | T1去掉T1和T2重叠部分 | public void subtract(Area rhs) |
“异或”T1 XOR T2 | 两个图形非重叠部分 | public void exclusiveOr(Area rhs) |
4.绘制钟表
如果钟表的圆心是(0,0),那么对于给定圆上的一点(x,y),该点按顺时针方法旋转a弧度后的坐标(m,n)由下列计算公式得到:
m=x*cos(a)-y*sin(a) ;n=y*cos(a)+x*sin(a)
5.绘制图像
组件上可以显示图像
Icon类的子类ImageIcon创建对象 | 封装图片名.jpg图像文件 |
组件调用setIcon()方法 | 设置其上的图像(显示图像) |
Graphics绘制图像:
加载图像 | Tollkit类的对象调用Image getImage(String fileName) // Image getImage(File file) | 返回一个Image对象,该对象封装参数file或参数fileName指定的图像文件 |
绘制图像 | public boolean drawImage(Image img,int x,int y,【int width,int height】ImageObserver observer) | 参数img是被绘制的Image对象 x、y是要绘制指定的图像的矩形的左上角所处位置 【width和height指定矩形的宽和高】 observer是加载图像时的图像观察器 |
6.播放音频
Java可以编写播放.au、.aiff、.wav、.midi、.rfm格式的音频程序。
假设音频文件hello.wav位于应用程序当前目录中,播放音频步骤如下:
创建File对象 | File musicFile = new File(“hello.wav”) |
获取URI对象 | URI uri = musicFile.toURI() |
获取URL对象 | URL url = uri.toURL() |
创建音频对象 | AudioClip clip = Applet.newAudioClip() |
播放、循环和停止 | clip.play();开始播放 |
clip.loop();循环播放 | |
clip.stop();停止播放 |
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
目标 | 5000行 | 20篇 | 400小时 | 会用java语言独立设计程序 |
第一周 | 13/13 | 1/1 | 5/5 | 学会使用jdk以及对java源程序语句的基本注意事项有所了解 |
第二周 | 140/143 | 1/2 | 10/15 | 学会java基本数据类型与数组和c语言/c++在表达和用法上的相同/不同之处 |
第三周 | 276/419 | 1/3 | 20/35 | java中运算符,表达式和语句的表现形式,类的声明,定义方法 |
第四周 | 600/1019 | 1/4 | 30/45 | 类和对象 |
第五周 | 150/1169 | 1/5 | 10/55 | 继承的作用,子类和父类的继承性,子类继承父类后方法的访问权限以及各种操作 |
第六周 | 100/1269 | 1/6 | 8/63 | 接口定义、使用方法和作用 |
第七周 | 100/1369 | 1/7 | 9/72 | 内部类(独有)包含匿名类和异常类(检测)的使用方法和作用 |
第八周 | 150/1869 | 1/8 | 10/82 | java常用实用类和方法 |
第九周 | 100/1969 | 1/9 | 20/102 | 组件、容器、窗口、(如何处理事件:事件源,监视器、接口) |
第十周 | 80/2049 | 1/10 | 10/112 | 输入输出流和各种流的作用、构造方法 |
第十一周 | 92/2141 | 1/11 | 7/119 | 连接数据库步骤、查询、更新、添加、删除语句 |
第十二周 | 104/2245 | 1/12 | 15/134 | 多线程的运行顺序和特点 |
第十三周 | 150/2395 | 1/13 | 12/146 | 线程、套接字、数据报、组件面板等的结合应用 |
第十四周 | 50/2445 | 1/14 | 5/151 | 绘制图像,图像,播放音频 |
参考文献
《java2实用教程(第5版)》