该课内容: Applet编程. 详细讲解Applet的生命周期. 子体的设置. applet从网页中获取信息. applet和浏览器的通信. 更新显示的原理.
—Applet.
Applet又称为Java小应用程序. 是能够嵌入到一个HTML页面中. 且可通过Web浏览器下载和执行的一种Java类. Applet不需要main()方法. Web浏览器中内嵌的Java虚拟机调用执行.
—Applet的安全限制.
因为applet是从远端服务器上下载并且在本地执行. 全性就显得格外重要.
通过限制applet在沙箱(applet的运行环境)中运行. 保证了对本地系统而言applet是安全的.
applet在沙箱中运行时.
- 不能运行任何本地可执行程序.
- 除了存放下载的applet的服务器外,applet不能和其它主机进行通信.
- 不能对本地文件系统进行读写.
—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(){} }
—Paint()方法.
- Applet本质上是图形方式的. 应该在图形环境中绘制我们的显示内容.
- 可以通过创建一个paint()方法在Applet的panel上绘图. 只要Applet的显示需要刷新. paint()方法就会被浏览器环境调用. 例如. 当Applet的显示尺寸发生变化的时候. 或浏览器窗口被最小化或被要求以图标方式显示时. 这种调用就会发生.
- 应该编写自己的paint()方法. 以使它在任何时候被调用.都能正常地工作. 对它的调用是异步产生的. 且由Applet的运行环境而不是程序来驱动.
- paint()方法带有一个参数. 它是java.awt.Graphics类的一个实例. 这个参数总是建立该Applet的panel的图形上下文. 可以用这个图形上下文在Applet中绘图或写入文本.
EX. 示例1
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); } }
注: 这节课后面还有动画程序的编写及优化.由于感觉可能暂时不怎么用到.因此在此不做笔记.