当前位置: 首页 > 面试题库 >

如何从JavaScript调用applet方法

薛华奥
2023-03-14
问题内容

我已经创建了一个applet,并且将要从Web项目上的HTML页面访问applet方法。

这里我的小程序看起来像:

public class MessageApplet extends Applet {

    private Label m_mess;

    public void init()
    {
        setBackground(Color.lightGray);
        setLayout(new BorderLayout());
        m_mess = new Label("MessageApplet is Running...: No Selection Yet", Label.CENTER);
        add(BorderLayout.CENTER, m_mess);
    }

    public void setMessage(String message)
    {
        m_mess.setText("Selection: " + message);
    }
}

我的HTML页面如下所示:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    <SCRIPT LANGUAGE="JavaScript">
        function selectedCity()
        {
            if(document.CityChoice.City[0].checked == true)
            {
                document.SimpleMessageApplet.setMessage(document.CityChoice.City[0].value);
            }
        }
    </SCRIPT>
</HEAD>

<BODY>
    <b>This is the applet</b>
    <APPLET 
        CODE="MessageApplet.class" 
        NAME="SimpleMessageApplet" 
        WIDTH=350
        HEIGHT=100>
    </APPLET>
    <FORM NAME="CityChoice">
        <input type="radio" name="City" value="Boston" onClick="selectedCity()"> Boston<br>
    </form>
</BODY>

</html>

但是,当我单击单选按钮时,浏览器将挂起,并且无法访问applet方法。

我的applet类位于默认目录中,而HTML位于WebContent文件夹中。我应该更改我的代码吗?


问题答案:

问题是if语句检查:

document.CityChoice.City[0].checked == true

这与JavaScript不完全一样,因为那里的错误表达式会引发 错误 ,并且永远不会使它进入if语句主体。

我删除了该if语句,并将代码更改为如下所示:

function selectedCity()
{
    document.SimpleMessageApplet.setMessage("Hello");
}

当我单击时,我会看到Hello消息很好。

将您的HTML文件内容更改为以下内容:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
        <SCRIPT LANGUAGE="JavaScript">
            function selectedCity()
            {
                var elem = document.getElementById('cityRb');

                if(elem.checked)
                {
                    document.SimpleMessageApplet.setMessage(elem.value);
                }
            }
        </SCRIPT></HEAD>
    <BODY >
        <b>This is the Applet</b>
    <APPLET CODE="MessageApplet.class" NAME="SimpleMessageApplet" WIDTH=350 HEIGHT=100 >
    </APPLET >
    <FORM NAME="CityChoice">
        <input type="radio" id="cityRb" name="City" value="Boston" onClick="selectedCity()"> Boston<br>
    </form>
</BODY >
</html>

同时添加完整的类代码:

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Label;

/**
 *
 * @author hmmmmm
 */
public class MessageApplet extends Applet {

    private Label m_mess;

    public void init() {
        setBackground(Color.lightGray);
        setLayout(new BorderLayout());
        m_mess = new Label("MessageApplet is Running...: No Selection Yet", Label.CENTER);
        add(BorderLayout.CENTER, m_mess);
        m_mess.setBackground(Color.red);
    }

    public void setMessage(String message) {
        m_mess.setText("Selection: " + message);
    }
}


 类似资料:
  • 问题内容: 我有一个applet,可以从特定的文件夹上载一些文件并删除它们,但是当我从javascript代码中调用applet函数时,出现了问题,当我从它调用该函数时,它工作正常。 我的小程序代码: 这是我的JavaScript代码: 当我从javascript调用时,仅打印日志: 请注意,当我从applet方法调用时,它可以正常工作。 我将代码包装到中,但仅前进了一步,然后继续 问题答案: J

  • 问题内容: 我有一个带有Java Applet的网站,该Applet需要连接到我的服务器。这在JApplets @Override init()中有效,但不适用于javascript调用的我自己的函数中。 网站: 输出: 我尝试通过System.out调用解决它,但是那里也没有任何反应。但是,这绝对可以: 哦,小程序当然也来自 我该如何解决或解决它? 问题答案: 尝试以下方法:

  • 问题内容: 我正在使用Mozilla Rhino JavaScript模拟器。它允许我将Java方法添加到上下文中,然后像调用JavaScript函数一样调用它们。但是我无法使用它,除非使用静态方法。 问题是文档的这一部分: 如果该方法不是静态的,则Java的“ this”值将对应于JavaScript的“ this”值。任何使用不正确的Java类型的’this’值调用该函数的尝试都会导致错误。

  • 问题内容: 我正在使用MVC3架构,c#.net。当焦点更改到下一个字段(即密码字段)时,我需要立即将文本框内容(用户ID)与数据库进行比较。因此,我想对用户ID字段使用onblur事件,然后再调用Controller方法。有谁能告诉我如何解决这个问题?作为我的新手,代码片段受到高度赞赏。 提前致谢, 普拉山斯 问题答案: 这是一个例子。控制器方法示例 这将是您的javascript函数。

  • 问题内容: 我们如何从Android调用javascript?我有一个我想使用的javascript库,我想调用javascript函数并将结果值传递给android java代码。从现在开始还没有找到答案。我设法从javascript调用android代码,但我想反过来。 问题答案: 有一个hack: 绑定一些Java对象,以便可以使用WebView从Javascript调用它: 通过以下方式强

  • 问题内容: 我是Node.js的新手,但是通过使用它我对套接字流Web框架有了一些了解,我可以轻松地从JavaScript调用服务器端的node.js方法。不使用该框架,我不知道该怎么做。如何从JavaScript调用node.js方法? 以下代码使用套接字流调用服务器端方法。因此,我想在不使用此框架的情况下调用相同的服务器端方法。 问题答案: 我建议使用Socket.IO 服务器端代码 和客户端