190 likes | 475 Views
Java 小应用初步. 1 所有小应用程序的根源. 1.1 小应用的特点 import java.applet.*; public class MyApplet extends Applet { ;} applet 都继承自 java.applet.Applet 类 , 由 Sun 公司事先定义好了 . 每个小应用都有一个主程序类 , 之前必须加上 public. http://someLocation/file.html. 1. Browser loads URL. <Html> <Applet code= ….> </Applet>.
E N D
1 所有小应用程序的根源 • 1.1 小应用的特点 import java.applet.*; public class MyApplet extends Applet { ;} • applet都继承自java.applet.Applet类,由Sun公司事先定义好了. • 每个小应用都有一个主程序类, 之前必须加上public.
http://someLocation/file.html 1. Browser loads URL <Html> <Applet code= ….> </Applet> 2. Browser loads HTML document 3. Browser loads applet classes Applet class http://someLocation/file.html Location: 4. Browser run applet Loading... 2.1 所有小应用程序的根源
本地程序 所有小应用程序的根源 • Applet的限制 SERVER Browser Applet被下载的 connection applet file SERVER connection local 与applet无关的 本地方法
2 applet的生命周期 • paint()虽不在生命周期内,但它的作用相当于applet的灵魂 Java.applet.Applet public void init() public void destroy() public void start() public void stop() public void paint(Graphics g)
一个applet的可视周期 init start 重新装入或改变页面大小或返回Web页面 离开web页面 stop destroy
有关paint()方法 • Applet本身是一个容器,因此任何输出都必须用图形方法paint() • 当小应用首次被装载,以及每次窗口放大、缩小、刷新时都要调用paint方法 • paint()是由浏览器调用的, 而不是由程序调用,当程序希望调用paint方法时,用repaint命令 • paint方法的参数是Graphics类的对象 g,它在java.awt.Graphics内 • paint(Graphicd g){。。。}
AWT thread(waiting) repaint() Exposure update() { clear arae call paint() paint()
小试身手 • 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
看下面的例子,想一想生命周期的四个方法哪去了?看下面的例子,想一想生命周期的四个方法哪去了? import java.awt.*; import java.util.Date; public class showDate extends java.applet.Applet { 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.drawString(timeNow.toString(),5,50); }
import java.awt.*; import java.util.Date; public class showDate extends java.applet.Applet { Date timeNow=new Date(); String title; Font msgFont=new Font(“TimesRoman”,Font.ITALIC,30); public void paint(Graphics g) { g.setFont(msgFont); g.setColor(Color.blue); g.drawString(title+ timeNow.toString(),5,50); } public void init() {title=getParameter (“rem”); if (title==null) title=“”; }
0 x y 3 图形处理 3.1图形坐标系统 任何与绘图有关的操作 第一个要用的是 java.awt.Graphics类 Graphics类的对象不是 由new产生的,而是由系 统或其他方式直接将生好的Graphics对象当作方法的参数,再交给程序设计者去处理.例如: paint(Graphics g)
Graphics的方法 paint(Graphics g) { g.clearRect(); g.copyArea(); g.drawAre() ; g.drawLine(); g.drawOval();g.drawRect(); g.drawPolygon(); g.fillArc(); g.fillOval(); g.fillPolygen(); g.fillRect(); g.getColor(); g.getFont() g.setFont(); g.setColor(); g.getFontMetrics() g.fillRoundRect() }
2 字型和颜色的设置 字型设置的方法 Font font=new Font(“TimesRoman”,Font.ITALIC,24); g.setFont(font); • 在小应用程序中显示输出的方法 g.drawString(String, int x, int y); g.drawChars(char data[], int offset, int length, int x, int y);
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() toString()
import java.awt.Graphics; import java.awt.Font; public class drawtext extends java.applet.Applet { Font fn=new Font("TimesRoman",Font.ITALIC,20); public void paint(Graphics g) { g.setFont(fn); g.drawString(”Font demo”,5,10); } } Font demo
获取更详细的数据 请查阅有关FontMetrics类的方法 fontMetrics=getFontMetrics(font); • FontMetrics中比较重要的方法有: stringWidth, charWidth, getAscent, getDescent, getLeading, getHeigh
图形处理 颜色的调整 • Color对象的使用 创造自己的颜色: Color mycolor=new Color(int red, int blue, int green); • g.setColor(Color.yellow) • g.setColor(mycolor); • 例:随机产生颜色,并画圆
import java.awt.Graphics; import java.awt.Color; public class drawcircle extends java.applet.Applet { public void paint(Graphics g) { int red,green,blue,x; for (x=0;x<370;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); }}}