我正在尝试创建一个非常简单的Java Applet,以尝试在Web浏览器中使用Java函数。问题是,我的applet无法获得任何功能。我在这个网站上尝试过几十个教程和答案,但没有任何结果产生任何不同的结果,浏览器总是说AppName.FunctionName不是函数。
这是我的HTML ...
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4 /strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>Test Applet</title>
</head>
<body onload="test()">
<applet code="TestApplet.class" name="AppTest"
height="350" width="100"></applet>
<script language="Javascript">
function test(){
alert("Attempt 1");
var elem= document.getElementById('AppTest');
alert(elem);
elem.test();
alert("Attempt 2");
document.AppTest.test();
}
</script><br>
</body>
</html>
这是我的Java代码......
import javax.swing.JApplet;
public class TestApplet extends JApplet {
public String sayHi(){
return "hello";
}
public void test(){
System.out.println("You did it bro");
}
}
为什么这似乎什么都不做?注意:我正在使用FireFox进行测试
修改
因此,我试图接近一个有效的解决方案,我修改了我的html如下
<html>
<head>
<title>Test Applet</title>
</head>
<body>
<applet code="AppPack.TestApplet.class"
codebase="TestApplet.jar" name="AppTest"
scriptable="true" height="350" width="100"></applet>
<script language="Javascript">function test(){
document.AppTest.test();
}
</script><br>
<input name="tryit" value="TryIt" onclick="test()"
type="button">
</body>
</html>
我尝试使用代码库声明,看看它是如何将applet绘制到画布上的,但是这个框只包含一个错误,说明找不到类的异常,如果没有它我会得到一个只有按钮的空白页面。所有文件都在同一个目录中,如果我在eclipse中测试applet,它会生成html以在查看器中运行applet,但如果只是使用broswer打开,这些html文件也不会加载。请问,任何人都可以了解我做错了什么吗?
答案 0 :(得分:2)
过早调用测试函数。
在调用页面onload
函数时,不一定会加载和启动applet。这实际上只意味着浏览器已经读取了与页面相关的所有HTML,不一定是图像,(外部定义的)样式或脚本,或者可能作为页面加载的结果创建的内容(例如applet)。
将test()
方法的调用放入您单击的按钮,在页面加载后等待“片刻”,然后再次尝试。
在部署时也要确保声明scriptable='true'
。像这样:
<applet
code="TestApplet"
name="AppTest"
scriptable="true"
height="350"
width="100">
</applet>
大多数浏览器都允许在没有它的情况下调用applet,但最好将其添加到其他浏览器中。