gpt4 book ai didi

java - 如何从 JavaScript 调用小程序方法

转载 作者:行者123 更新时间:2023-11-29 17:23:58 27 4
gpt4 key购买 nike

我已经创建了一个小程序,我打算从我的 Web 项目的 HTML 页面访问一个小程序方法。

我的小程序如下所示:

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>

但是当我单击单选按钮时,我的浏览器挂起并且我永远无法访问小程序方法。

我的小程序类在默认目录中,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);
}
}

关于java - 如何从 JavaScript 调用小程序方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10548558/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com