【发布时间】:2013-09-18 03:09:11
【问题描述】:
我正在尝试创建一个非常简单的 Java Applet 来尝试在 Web 浏览器中使用 Java 功能。问题是,我无法从我的小程序中获得任何功能。我已经尝试了该站点中的数十个教程和答案,但没有产生任何不同的结果,浏览器总是说 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>
我尝试使用代码库声明,看看包含它如何将小程序绘制到画布上,但是该框只包含一个错误,指出类未找到异常,没有它,我得到一个只有按钮的空白页面.所有文件都在同一个目录中,如果我在 Eclipse 中测试小程序,它会生成 html 以在查看器中运行小程序,但是如果仅使用浏览器打开这些 html 文件也不会加载。请问,谁能解释一下我做错了什么?
【问题讨论】:
-
测试函数调用太快。 - 小程序不应有构造函数。将该代码放入
init()并在部署时声明它scriptable='true'。为什么要编写小程序?如果是由于规范。老师请发给Why CS teachers should stop teaching Java applets。 -
你能给我举个例子来说明你的意思吗?该小程序用于与工作相关的项目,我们希望能够访问服务器端的某些 Java 实用程序以供内部使用。
-
“你能给我举个例子说明你的意思吗?” 你能回答我的问题——即“为什么要编写小程序?”
-
正如我提到的,我们正在开发一个基于浏览器的应用程序供内部使用,我们希望一些 Java 实用程序来更改保存在服务器端磁盘上的文件,小程序是我们访问 Java 的一种方式从我们的浏览器中,如果有更好的方法来访问 html 或 javascript 中的 Java 类,我将有兴趣了解更多信息。但是,出于这个问题的目的,我不清楚您所说的“将代码放入 init() 并声明它 scriptable='true'”是什么意思,您能澄清一下吗?
-
“我不清楚你所说的“将代码放在 init() 中并声明它是 scriptable='true'”的意思,你能澄清一下吗?”有趣的是,这些都不是主要问题(AFAIU),这在第一句话中已经涵盖。至于“不清楚”——你不清楚什么?具体一点,因为我不打算用cmets写小程序教程..
标签: java javascript html applet