JAVA应用程序转换为Applet

时间:2023-03-09 18:21:47
JAVA应用程序转换为Applet

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41673295

将一个图形的JAVA应用程序转换为能够嵌入在网页中运行的applet很容易,从本质上来说,所有用户界面编码都是相同的,

将应用程序转化为applet代码基本步骤为:

(1)创建一个HTML页面,并用适当的标记加载applet代码。

(2)创建一个JApplet类的子类。将这个子类标记为共有,否则,不能加载applet。

(3)删除应用程序中的main方法。不要为应用程序构造框架窗口。应用程序将显示在浏览器中。

(4)将框架窗口构造器中的初始化代码移到applet的init方法中。不需要明确地构造applet对象。浏览器负责实例化并调用init方法。

(5)删除对setSize的调用。在applet中,大小由HTML中的width和height参数确定定义。

(6)删除对setDefaultCloseOperation的调用。不要关闭applet,退出浏览器时它会自动终止运行。

(7)如果应用程序调用setTitle,要删除这个调用,Applet没有标题栏。(也可以使用HTML的title标记为网页设置标题)

(8)不需要调用setVisible(true)。Applet会被自动显示出来。

1.Applet的HTML标记和属性

  <applet code = "MyApplet.class" width = "300" height="300">

            ABCDEFGHIJK   (这里的文字只有浏览器不支持applet才会显示出来)

  </applet>

  注意:code指出类名,必须包括.class扩展名,width和height属性确定applet窗口大小,以像素为单位。

  

2.使用参数向applet传递信息

applet可以嵌入在HTML中的参数,这是由使用被称为param的的HTML标记连同自定义属性完成的。

需要注意的是:只能在applet的init方法中调用getPatameter方法,而不是在构造器中调用。因为当applet构造器被执行时,参数还没准备好。

   <applet code="FontParamApplet.class" width="200" height="200">
    <param name="font" value="Helvetica"/>
    <param name="size" value="30"/>
   </applet>
   public class FontParamApplet extends JApplet{
     public void init(){
      String fontName = getPatameter("font");
      int fontSize = Integer.parseInt(getPatameter("size"));
      ...
     }
   } 

3. 简单的示例代码如下:

public class MyApplet extends JApplet {

	public void init(){
		EventQueue.invokeLater(new Runnable(){

			@Override
			public void run() {
					JLabel label = new JLabel("Not a Hello, World applet",SwingConstants.CENTER);
					add(label);
			}
		});
	}
}	

4.如果想让程序以网页的形式打开并显示,就需要配置Applet与HTML之间的参数,将参数传递给Applet,并使用标记加载Apple。将编译完成的class文件和HTML文件放在同一个文件夹中,直接用浏览器代开HTML文件即可,需要注意的是浏览器需要安装JAVA插件,否则不能够正常的显示。

完整的实例如下所示:

/**Applet**/
public class MyApplet extends JApplet {
	double f(double x) {
		return (Math.cos(x / 5) + Math.sin(x / 7) + 2) * getSize().height / 4;
	}

	public void paint(Graphics g) {
		for (int x = 0; x < getSize().width; x++) {
			g.drawLine(x, (int) f(x), x + 1, (int) f(x + 1));
		}
	}

	public String getAppletInfo() {
		return "Draws a sin graph.";
	}
}
/**HTML**/
<html>
  <head>
      <title>Applet</title>
  </head>
  <body>
      <hr>
      <applet code=MyApplet.class width=300 height=120>
	alt="Your browser understands the <APPLET> tag but isn't running the applet, for some reason."
	Your browser is completely ignoring the <APPLET> tag!
      </applet>
      <hr>
      <a href="MyApplet.java">The source</a>.
  </body>
</html>