Applet java学习 Lesson 9
来源:互联网 发布:交通规划软件transcad 编辑:程序博客网 时间:2024/05/16 13:50
Applet
Applet又称为Java小应用程序,是能够嵌入到一个HTML页面中,并且可通过Web浏览器下载和执行的一种Java类 。
Applet不需要main()方法,由Web浏览器中内嵌的Java虚拟机调用执行。
Applet的安全限制
因为applet是从远端服务器上下载并且在本地执行,所以安全性就显得格外重要。
通过限制applet在沙箱(applet的运行环境)中运行,保证了对本地系统而言applet是安全的。
applet在沙箱中运行时:
⑴不能运行任何本地可执行程序;
⑵除了存放下载的applet的服务器外,applet不能和其它主机进行通信。
⑶不能对本地文件系统进行读写。
Applet的生命周期
init():当浏览器加载applet,进行初始化的时候调用该方法。
start():在init()方法之后调用。当用户从其它页面转到包含applet的页面时,该方法也被调用。
stop():在用户离开包含applet的页面时被调用。
destroy():当applet不再被使用,或浏览器退出的时候,该方法被调用。
Applet本质上是图形方式的,我们应该在图形环境中绘制我们的显示内容。
我们可以通过创建一个paint()方法在Applet的panel上绘图。只要Applet的显示需要刷新,paint()方法就会被浏览器环境调用。例如,当Applet的显示尺寸发生变化的时候,或浏览器窗口被最小化或被要求以图标方式显示时,这种调用就会发生。
我们应该编写自己的paint()方法,以使它在任何时候被调用,都能正常地工作。对它的调用是异步产生的,且由Applet的运行环境而不是程序来驱动 。
paint()方法带有一个参数,它是java.awt.Graphics类的一个实例。这个参数总是建立该Applet的panel的图形上下文,我们可以用这个图形上下文在Applet中绘图或写入文本。
applet从网页中获取信息
Applet和浏览器的通信
在浏览器中显示信息
调用AppletContext接口中的showStatus()方法
请求浏览器显示指定的网页
调用AppletContext接口中的showDocument()方法。
AWT绘图
更新显示由一种被称为AWT线程的独立的线程来完成。这个线程可用来处理与显示更新相关的两种情况。
第一种情况是显露(exposure),它在首次显示时,或在部分显示已被破坏而必须刷新时出现。显示的破坏可能发生在任何时刻,因此,我们的程序必须能在任意时刻更新显示。
第二种情况是在程序重画带有新内容的画面时。这种重画可能会要求首先擦除原来的图像。
paint(Graphics g)方法
当组件第一次显示,或受损的部分需要修复时被调用。除非必要,更新不会完全覆盖整个图形区域,而是严格限制在被破坏的范围内。
repaint()方法
对repaint()的调用可通知系统:你想改变显示,于是系统将调用paint()。
update(Graphics g)方法
repaint()实际上产生了一个调用另一方法update()的AWT线程。update方法通常清除当前的显示并调用paint()。update()方法可以被修改,例如:为了减少闪烁可不清除显示而直接调用paint()。
import java.applet.*;import java.awt.*;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.net.URL;public class TestApplet extends Applet{String strFont;int xOrigin,yOrigin;public void init(){Button btn=new Button("链接");add(btn);btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){try{getAppletContext().showDocument(new URL("http://localhost/postinfo.html"),"_blank");}catch(Exception ex){ex.printStackTrace();}}});strFont=getParameter("font");addMouseListener(new MouseAdapter(){public void mousePressed(MouseEvent e){xOrigin=e.getX();yOrigin=e.getY();}public void mouseReleased(MouseEvent e){Graphics g=getGraphics();g.setColor(Color.red);g.drawLine(xOrigin,yOrigin,e.getX(),e.getY());}});//System.out.println("init");}public void start(){System.out.println("start");}public void stop(){System.out.println("stop");}public void destroy(){System.out.println("destroy");}public void paint(Graphics g){//Font f=new Font("楷体_GB2312",Font.BOLD,30);Font f=new Font(strFont,Font.BOLD,30);g.setFont(f);g.setColor(Color.blue);g.drawString("维新科学技术培训中心",0,30);}}//<applet code="TestApplet.class" width=600 height=400>//</applet>
import java.applet.*;import java.awt.HeadlessException;public class AudioTest extends Applet{private AudioClip ac;public void init(){ac=getAudioClip(getDocumentBase(), "kk.mp3"); System.out.println("haahhahaha");} public void start(){ //play(getDocumentBase(), "123.wma"); ac.loop();System.out.println("nsbasnh"); } public void stop(){ ac.stop();System.out.println("utiewutiwe"); }}
import java.applet.Applet;import java.awt.HeadlessException;import java.awt.*;public class ShowImage extends Applet{private Image[] imgs;private int totalImages=10;private int currentImage;private int i=0;public void init(){imgs=new Image[totalImages];for(int i=0;i<totalImages;i++){imgs[i]=getImage(getDocumentBase(), "T"+(i+1+".jpg"));}//img=getImage(getDocumentBase(), "0095.jpg");}public void start(){currentImage=0;}public void paint(Graphics g){System.out.println("draw:"+i++);//g.drawImage(img, 0, 0, this);g.drawImage(imgs[currentImage], 0, 0, this);currentImage=++currentImage%10;try {Thread.sleep(500);}catch (Exception ex) {ex.printStackTrace();}repaint(); }}
/** * @(#)DoubleBuffer.java * * * @author * @version 1.00 2012/5/17 */import java.applet.Applet;import java.awt.HeadlessException;import java.awt.*;public class DoubleBuffer extends Applet {private Image[] imgs;private int totalImages=10;private int currentImage;private int i=0;private Image imgBuf;private Graphics gBuf;private MediaTracker mt;public void init(){mt=new MediaTracker(this);imgBuf=createImage(600, 400);gBuf=imgBuf.getGraphics();gBuf.setColor(Color.red);gBuf.fillRect(0, 0, 600, 400);imgs=new Image[totalImages];for(int i=0;i<totalImages;i++){imgs[i]=getImage(getDocumentBase(), "T"+(i+1+".jpg"));mt.addImage(imgs[i], i); }try{mt.waitForID(0);}catch(Exception ex){ex.printStackTrace();}//img=getImage(getDocumentBase(), "0095.jpg");}public void start(){currentImage=0;gBuf.drawImage(imgs[currentImage], 0, 0, this);currentImage=1;}public void paint(Graphics g){System.out.println("draw:"+i++);//g.drawImage(img, 0, 0, this);g.drawImage(imgBuf, 0, 0, this);if(mt.checkID(currentImage, true)){gBuf.fillRect(0, 0, 600, 400);gBuf.drawImage(imgs[currentImage], 0, 0, this);currentImage=++currentImage%10;}try {Thread.sleep(500);}catch (Exception ex) {ex.printStackTrace();}repaint(); } public void update(Graphics g){paint(g);} }
- Applet java学习 Lesson 9
- java学习9---Applet 编程
- Java SE 学习笔记 Lesson 9
- 正在学习Java Applet
- Java Applet学习笔记
- applet,欢迎学习java
- JAVA 学习笔记---applet
- 线程 java学习 Lesson 5
- applet 事件--java学习笔记
- java.applet.Applet类
- Java SE 学习笔记 Lesson 4
- Java SE 学习笔记 Lesson 5
- Java SE 学习笔记 Lesson 6
- Java SE 学习笔记 Lesson 7
- Java SE 学习笔记 Lesson 8
- Java SE 学习笔记 Lesson 10
- Java SE 学习笔记 Lesson 11
- Java SE 学习笔记 Lesson 12
- Data Abort产生的原因
- 史记
- 云之彼端,牵手未来—— “我思故我在”—我眼中的第四届中国云计算大会
- struts2标签
- linux 安装oracle11g 步骤
- Applet java学习 Lesson 9
- 用GOOGLE你瞬间成为黑客
- matlab读写txt
- 《赢在中国》对80后做人做事忠告
- Aiml简介
- test
- redhat9.0 浏览器乱码问题
- 浅谈android移动开发之WebView(关于javascript与java对象之间的互调)
- 第14周任务1