使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识。
day086 部署Java程序(三)(applet:一个简单的applet、applet HTML标记属性、使用参数向applet传递信息)
applet
applet是包含在HTML页面中的Java程序。HTML页面必须告诉浏览器要加载哪些applet,另外每个applet要放在Web页面的什么位置。可以想见,需要使用applet的标记(tag)必须告诉浏览器从哪里得到类文件,以及这个applet在Web页面上如何定位(大小、位置等)。然后浏览器再从Internet(或者从用户机器上的某个目录)获取类文件,并自动运行applet。
最初开发applet时,必须使用Sun的RotJava浏览器才能査看包含applet的Web页面。很自然地,很少有用户愿意只是为了尝试一个新的Web特性去使用另一个浏览器。后来Netscape在它的Navigator浏览器中包含了一个Java虚拟机,那时Javaapplet才开始流行。Microsoft的InternetExplorer紧随其后。遗憾的是,InternetExplorer中的Java支持很快就落伍了,只能用于一些过期的Java版本,后来干脆取消了。
为了解决这个问题,SunMicrosystems开发了“JavaPlug-in”。通过使用浏览器扩展机制,可以把插件插人不同的浏览器,允许这些浏览器使用外部Java运行时环境执行Javaapplet。
多年来,这个解决方案都能满足要求,applet常用于教学工具、企业应用和一些游戏。遗憾的是,尽管不时会发现Java虚拟机的安全漏洞并被恶意利用,但SunMicrosystems和后来的Oracle在修补这些漏洞方面却动作迟缓,举措不力。由于不安全的JVM会置用户于危险当中,所以浏览器制造商让Java的使用更有难度。有些浏览器除了最新版本的Java插件外甚至完全禁用其他Java插件,另外一些浏览器则不再支持插件体系结构。Oracle的反应也很让人失望。它开始要求所有applet都有数字签名。
如今,开发人员要部署Javaapplet会很困难,用户运行applet也不容易。
1.一个简单的applet
编写一个NotHelloWorld程序,这里把它写为一个applet。applet就是一个扩展了java.applet.Applet类的Java类。我们将使用Swing来实现applet。这里的所有applet都将扩展JApplet类,它是Swingapplet的超类。如图所示,JApplet是Applet类的一个直接子类。
下面的程序显示了applet版本“NotHelloWorld”的代码。
/**
*@author zzehao
*/
import java.swt.*;
import javax.swing.*;
public class NotHelloWorld extends JApplet
{
public void init()
{
EventQueue.invokeLater(() -> {
JLabel label = new JLabel("Not a Hello,World applet",SwingConstants.CENT