Java无难事(笔记)-Lesson9-applet

该课内容: Applet编程. 详细讲解Applet的生命周期. 子体的设置. applet从网页中获取信息. applet和浏览器的通信. 更新显示的原理.


Applet.

Applet又称为Java小应用程序. 是能够嵌入到一个HTML页面中. 且可通过Web浏览器下载和执行的一种Java类. Applet不需要main()方法. Web浏览器中内嵌的Java虚拟机调用执行.

Applet的安全限制.

因为applet是从远端服务器上下载并且在本地执行. 全性就显得格外重要.

通过限制applet在沙箱(applet的运行环境)中运行. 保证了对本地系统而言applet是安全的.

applet在沙箱中运行时.

  • 不能运行任何本地可执行程序.
  • 除了存放下载的applet的服务器外,applet不能和其它主机进行通信.
  • 不能对本地文件系统进行读写.

Applet的生命周期.

Java无难事(笔记)-Lesson9-applet
package test;
import java.applet.*;
public class Test extends Applet{
    // 当浏览器加载applet,进行初始化的时候调用该方法
    public void init(){    }
    // 在init()方法之后调用.
    // 当用户从其他页面转到包含applet的页面时. 该方法被调用
    public void start(){}
    // 在用户离开包含applet页面时被调用
    public void stop(){}
    // 当applet不再被使用.或浏览器退出时.该方法被调用
    public void destroy(){}
}
Java无难事(笔记)-Lesson9-applet

—Paint()方法.

  • Applet本质上是图形方式的. 应该在图形环境中绘制我们的显示内容.
  • 可以通过创建一个paint()方法在Applet的panel上绘图. 只要Applet的显示需要刷新. paint()方法就会被浏览器环境调用. 例如. 当Applet的显示尺寸发生变化的时候. 或浏览器窗口被最小化或被要求以图标方式显示时. 这种调用就会发生.
  • 应该编写自己的paint()方法. 以使它在任何时候被调用.都能正常地工作. 对它的调用是异步产生的. 且由Applet的运行环境而不是程序来驱动.
  • paint()方法带有一个参数. 它是java.awt.Graphics类的一个实例. 这个参数总是建立该Applet的panel的图形上下文. 可以用这个图形上下文在Applet中绘图或写入文本.

EX. 示例1

Java无难事(笔记)-Lesson9-applet
package test;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
public class Test extends Applet{
    String strFont;
    int xOrigin, yOrigin;
    public void init(){
        // 增加一个按键连接.
        Button btn = new Button("link");
        add(btn);
        btn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                try{
                    getAppletContext().showDocument(
                            new URL("http://www.baidu.com.cn"), "_blank");
                }
                catch(Exception ex){
                    ex.printStackTrace();
                }
            }
        });
        System.out.println("init");
        // 获取网页中的参数
        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());
            }
        });
    }
    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){
        // 设置字体
        g.setFont(new Font(strFont, Font.BOLD, 30));
        g.setColor(Color.blue);        
        g.drawString("this is a string", 0, 30);
    }
}
Java无难事(笔记)-Lesson9-applet

注: 这节课后面还有动画程序的编写及优化.由于感觉可能暂时不怎么用到.因此在此不做笔记.

Java无难事(笔记)-Lesson9-applet,布布扣,bubuko.com

Java无难事(笔记)-Lesson9-applet

上一篇:微信jssdk在iframe页面失效问题的解决措施


下一篇:关于给予webApp框架的开发工具