Top
首页 > 老文章 > 正文

Javascript与Java在浏览器中的交互

Javascript与Java在浏览器中的交互

Javascript与Java在浏览器中的交互
发布时间:2006-04-25 18:02        来源:        作者:
JavaScriptJava在浏览器中的交互

----Javascript刚出来的时候,许多人都以为Javascript和Java差不多,而事实上两者毫无二致.但这并不是说两者就毫无联系了.在Netscape Navigator 3.0以上的版本和IE4.0中,Javascript却可以和JavaApplet实现交互.

----在Javascript中有一个对象叫做packages,通过它可以调用Java API中的方法.比如

---- packages.java.lang.System.out.println("Hello,World!")

---- 用Netscape Navigator 3.0以上的版本来看含有该语句的html文件,你会在Netscape的Java Console中看到"Hello,World!"的输出.

----可能你会觉得这样做很不直观,因为不能在浏览器中直接显示,还要另外打开一个JavaConsole窗口,似乎麻烦了一点.但是这个例子最简单,它不需要你写什么java程序,直接调用javaapi中的函数就可以了.

----为了进一步说明javascript是如何在NetscapeNavigator中控制javaapplet的,让我们看看以下的例子.该例假设你是一位java程序员,现在接到一项任务.该任务要求你设计一个javaapplet,这个javaapplet会在浏览器中画一个圆,然后你要提供一个按钮给用户,使得用户只要用鼠标点一下按钮,这个圆的颜色就会改变.

----凡是学过java编程的人都知道这个程序可以全部用java语言来实现.但是我要说,这样做有一个弊端.那就是源程序会变得复杂,长度增加.因为画圆很简单,一个paint()就可以完成了.但是加上了按钮,就要加上有关事件处理的方法.程序马上就变长了.如果用javascript来实现,则情况就简单多了.java程序中只需要提供一个控制颜色变化的方法就可以了.对于按钮事件的处理则可以全部交给浏览器自己去解决了.

----以下是该例的java源程序,以及与之配合的javascript.



import java.awt.Graphics;
import java.awt.Color;
public class simple_sample extends java.applet.Applet
{
Color line_color=Color.black;
String color_description="";
private int i=1;
public void start_2_change()
{
if (i%2==0)
{
line_color=Color.yellow;
color_description="The current color is Yellow!";
}
else
{
line_color=Color.green;
color_description="The current color is Green!";
}
i++;
repaint();
}
public void paint(Graphics g)
{
g.drawString(color_description,10,10);
g.setColor(line_color);
g.drawOval(30,20,79,79);
}
}  

Javascript:
< form >
< input type="button" value="Alter Color"
onclick="document.simple_sample.start_2_change()" >
< /form >
加载更多

专题访谈

合作站点
stat