浏览器上的小程序

时间:2011-01-28 01:15:59

标签: applet

如何使用applet类中声明的一些函数?即。

这是我的班级

public class hi extends JApplet{

public void HiThere(){
    System.out.println("Hi on Java Console");
}

}

在我的浏览器上声明了类似的内容:

<applet.... name="HI" id="HI"  ......>Ooops!!!</applet>"

但是当我尝试使用该函数时出现了错误,那么如何使用我的applet类中声明的函数?感谢!!!

3 个答案:

答案 0 :(得分:1)

首先,您应该对代码进行此更改:

  

公共类HI扩展了JApplet {

     

public HI(){System.out.println(“在Java控制台上嗨”);}

     

}

如果您已完成此操作,并且浏览器仍有错误,请在此处发布确切的错误消息。此外,您可能希望查找“编程Java小程序入门”的教程,因为您的代码告诉我,您似乎不知道自己在做什么。

答案 1 :(得分:1)

为了从js调用你的类方法,你必须在html中声明<object>,用你的编译内容指定一个.jar.class,主类的包和其他一些参数如下例所示(对象用于IE,嵌入用于FF):

我想您想要调用问题中定义的hi.HiThere()方法。

<object
width="100" height="100" id="hi">
<param name = "code" value = "path.to.your.main.class.hi">
<param name = "archive" value = "jar location">
<param name = "mayscript" value = "true">
<param name = "scriptable" value = "true">
...
    <comment>
       <embed 
          code = "path.to.your.main.class.hi" 
          archive = "your jar location"
          scriptable = "true"
          width = "100" height = "100"
          name = "hi"
          ...
       </embed>
</comment>
</object>

然后,您可以使用document中的id属性或示例案例<object>中的name通过<embed>访问您的对象{ {1}}。使用以下代码,您可以调用document.hi方法:

HiThere();

为了执行最后的java版本,请记住满足新的java安全要求(清单属性http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html,jar签名......)。

答案 2 :(得分:0)

您可以在JavaScript中调用applet方法:

为此,应该从JavaScript启动applet,例如

<script src="https://www.java.com/js/deployJava.js"></script>
    <script>
        var attributes = { id: 'mainApplet', code:  
'org.jazzteam.Example', archive: 'example.jar', width: 812, height:  
635};                 
        var parameters = {};         
        deployJava.runApplet(attributes, parameters, '1.7');                 
        function actionInApplet(url) {                         
            mainApplet.appletMethod(url);                 
        }
</script>

在这种情况下,applet是使用 id =&#39; mainApplet&#39; 从JavaScript启动的。在applet中有 appletMethod()方法,我们想要调用它。为此,您需要使用id名称调用与JavaScript对象相关的方法。您还可以将参数传递给被调用的方法,如本例所示。

此外,有必要知道从JavaScript调用的applet方法应该是特权。为此,您需要将方法代码包装在以下&#34;包装器&#34;:

AccessController.doPrivileged(new PrivilegedAction() {
    public Object run() {
        //method code
        return new Object();
    }
});

此信息取自文章: Frequently Asked Questions during Java applet development