北大计算机系java讲义-第二章java小程序.ppt
《北大计算机系java讲义-第二章java小程序.ppt》由会员分享,可在线阅读,更多相关《北大计算机系java讲义-第二章java小程序.ppt(68页珍藏版)》请在三一办公上搜索。
1、1,第2章 Java小应用,北京大学计算机系代亚非,2,第2章 Java小应用,2.1 所有小应用程序的根源2.2 小试身手2.3 图形操作2.4 URL类 2.5 载入现有图像文件2.6 动画效果2.7 播放声音2.8 小 结,3,2.1 所有小应用程序的根源,2.1.1 小应用的特点回忆一下小应用程序的书写格式 import java.applet.*;public class MyApplet extends Applet;applet都继承自类,由Sun公司事先定义好了.每个小应用都有一个主程序类,之前必须加上public.,4,2.1 所有小应用程序的根源,5,2.1 所有小应用程序
2、的根源,Applet的限制,applet,Browser,SERVER,file,SERVER,local,connection,connection,Applet被下载的,与applet无关的,本地方法,6,2.1 所有小应用程序的根源,2.1.2 applet的生命周期paint()虽不在生命周期内,但它的作用相当于applet的灵魂,public void init(),public void destroy(),public void start(),public void stop(),public void paint(Graphics g),7,2.1 所有小应用程序的根源,一个
3、applet的可视周期,init,start,stop,destroy,离开web页面,重新装入或改变页面大小或返回Web页面,8,2.1 所有小应用程序的根源,有关paint()方法Applet本身是一个容器,因此任何输出都必须用图形方法paint()当小应用首次被装载,以及每次窗口放大、缩小、刷新时都要调用paint方法paint()是由浏览器调用的,而不是由程序调用,当程序希望调用paint方法时,用repaint命令paint方法的参数是Graphics类的对象 g,它在内paint(Graphicd g)。,9,2.1 所有小应用程序的根源,AWT thread(waiting),u
4、pdate()clear arae call paint(),paint(),repaint(),Exposure,10,2.2 小试身手,2.2.1 起始页上的时间和日期介绍两个类:1.类名:Date 创建一个实例 Date timeNow=new Date();2.类名Font 创建一个实例 Font msgFont=new Font(“TimesRoman”,Font.ITALIC,30);,0Mon Dec 07 14:23:50 GMT+08:00 1998,11,2.2 小试身手,看下面的例子,想一想生命周期的四个方法哪去了?,import java.awt.*;import ja
5、va.util.Date;Date timeNow=new Date();Font msgFont=new Font(“TimesRoman”,Font.ITALIC,30);public void paint(Graphics g)g.setFont(msgFont);g.setColor(Color.blue);g.darwString(timeNow.toString(),5,50);,12,2.2 小试身手,2.2.2 在起始页中加入applethtml中有关的代码 CODEBASE的作用 当class文件与起始页文件不在同一个目录下时,使用CODEBASE说明 CODEBASE=“m
6、yjavaclass”,13,2.2 小试身手,CODEBASE=“myjavaclass”,14,2.2 小试身手,ALIGN,HSPACE,VSPACE,Java applet,其它文字,其它文字,vspace,hspace,vspace=100 hspace=100,15,2.2 小试身手,向applet传递参数的两个步骤 1.在起始页中要有标签 2.在applet中要有getParameter方法在起始页中有:在applet中有:string title=getParameter(rem);在显示时间的命令中加入title:g.drawString(title+timeNow.toSt
7、ring(),5,50);,16,2.2 小试身手,import java.awt.*;import java.util.Date;Date timeNow=new Date();String title;Font msgFont=new Font(“TimesRoman”,Font.ITALIC,30);,public void init()title=getParameter(“rem”);if(title=null)title=“”;,public void paint(Graphics g)g.setFont(msgFont);g.setColor(Color.blue);g.darw
8、String(title+timeNow.toString(),5,50);,17,2.2 小试身手,例:利用一个可以显示运行字符串的类,显示自己的字符串(htmlpara.html),18,2.2 小试身手,public void init()String paramete;parameter=getParameter(MESSAGE);if(parameter!=null)message=parameter;parameter=getParameter(FONT);if(parameter!=null)font_to_use=parameter;parameter=getParameter
9、(POINT_SIZE);if(parameter!=null)point_size=Integer.parseInt(parameter);,19,2.3 图形处理,2.3.1图形坐标系统任何与绘图有关的操作第一个要用的是类Graphics类的对象不是由new产生的,而是由系统或其他方式直接将生好的Graphics对象当作方法的参数,再交给程序设计者去处理.例如:paint(Graphics g),20,2.3 图形处理,Graphics的方法paint(Graphics g)g.clearRect();g.copyArea();g.drawAre();g.drawLine();g.draw
10、Oval();g.drawRect();g.drawPolygon();g.fillArc();g.fillOval();g.fillPolygen();g.fillRect();g.getColor();g.getFont()g.setFont();g.setColor();g.getFontMetrics()g.fillRoundRect(),21,2.3 图形处理,2.3.2 字型和颜色的设置2.3.2.1 字型设置的方法 Font font=new Font(“TimesRoman”,Font.ITALIC,24);g.setFont(font);在小应用程序中显示输出的方法 g.dr
11、awString(String,int x,int y);g.drawChars(char data,int offset,int length,int x,int y);,22,2.3 图形处理,g.drawBytes(byte data,int offset,int length,int x,int y);例:g.drawString(“This is a test”,5,10);获取字体的属性 Font font=g.getFont();Font类中常用的方法 GetFamily()getName()getSize()getStyle()isItalic()isPlain()isBold
12、()toString(),23,2.3 图形处理,import java.awt.Graphics;import java.awt.Font;Font fn=new Font(TimesRoman,Font.ITALIC,20);public void paint(Graphics g)g.setFont(fn);g.drawString(”Font demo”,5,10);,Font demo,24,2.3 图形处理,获取更详细的数据 请查阅有关FontMetrics类的方法 fontMetrics=getFontMetrics(font);FontMetrics中比较重要的方法有:stri
13、ngWidth,charWidth,getAscent,getDescent,getLeading,getHeigh,25,2.3 图形处理,2.3.2.2 颜色的调整Color对象的使用 创造自己的颜色:Color mycolor=new Color(int red,int blue,int green);g.setColor(Color.yellow)g.setColor(mycolor);例:随机产生颜色,并画圆,26,2.3 图形处理,import java.awt.Graphics;import java.awt.Color;public class drawcircle exten
14、ds java.applet.Applet public void paint(Graphics g)int red,green,blue,x;for(x=0;x370;x+=30)red=(int)Math.floor(Math.random()*256);green=(int)Math.floor(Math.random()*256);blue=(int)Math.floor(Math.random()*256);g.setColor(new Color(red,green,blue);g.fillOval(x,0,30,30);,27,2.4 URL类,2.4.2 构造URL类(全名ja
15、va.lang.URL)绝对URL的构造方法:URL(String spec)例:URL url=new URL(http:/某绝对地址:在该目录下有两个文件 mywork.html myfamily.html,28,2.4 URL类,URL base=new URL(“http:/”);URL url1=new(base,“mywork.html”);URL url2=new(base,“mywork.html”);其他URL的构造方法:URL url=new URL(“http”,“”,“/dyf/test.html”);,29,2.4 URL类,2.4.3 获取小应用程序HTML页面的U
16、RL和小应用程序本身的URLURL html=getDocumentBase();System.out.print(html);URL codebase=getCodeBase();System.out.print(codebase);,30,2.4 URL类,2.4.4 URL异常(MalformedURLException)当创建URL时发生错误,系统会产生异常 try URL url=new URL(str);catch(MalformedURLException(e)DisplayErrorMessage();2.4.5 URL类的基本方法 String getProtocol(),S
17、tring getHost(),ing getPort(),String getFile(),String getRef(),31,2.4 URL类,构造URL的实例,import.URL;import.MalformedURLException;public class Test URL url1,url2,url3;void test()try url1=new URL(“file:/D:/image/example.gif”);url2=new URL(“http:/url1=new URL(url2,“hit.gif”);catch(MalformedURLException e);/
18、处理例外,32,2.5 载入现有图像文件,Image类java支持gif和jpg两种格式的图像图像文件的URL:URL picurl=new URL(“http:/xxx.yyy.edu/Applet/img1.gif”);取一幅图像构成图像对象 Image img1=getImage(picurl);Image img2=getImage(getCodeBase(),“img2.gif”);,33,2.5 载入现有图像文件,显示一幅图像:g.drawImage(img1,x,y,this);g.drawImage(img1,x,y,Color.red,this);g.drawImage(im
19、age1,x,y,x2,y2,Color.red,this);,规定背景,规定尺寸,34,2.5 载入现有图像文件,完整的过程,在类中,在init0中,在paint0中,35,2.5 载入现有图像文件,import java.applet.*;import java.awt.*;public class image extends Applet Image img;public void init()img=getImage(getCodeBase(),img0001.gif);public void paint(Graphics g)int width=img.getWidth(this);
20、int height=img.getHeight(this);g.drawRect(52,52,width+30,height+30);g.drawImage(img,57,57,width+20,height+20,this);,36,2.6 动态效果-线程的应用,2.4 动态效果-线程的应用什么是线程?线程是执行中的程序中的单个顺序控制流.Java支持多线程,37,2.6 动态效果-线程的应用,静态的情况import java.applet.*;import java.awt.Graphics;public class maguee extends Applet public void p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北大 计算机系 java 讲义 第二 程序
链接地址:https://www.31ppt.com/p-6447537.html