问题描述
我已经创建了一个applet,并且我将从Web项目上的HTML页面访问applet方法.
I have created an applet and I am going to access an applet method from my HTML page on a web project.
这是我的applet的样子:
Here my applet looks like:
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页面如下:
And my HTML page looks like:
<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方法.
But when I click radio button my browser hangs and I cannot access the applet method ever.
我的applet类在默认目录中,而HTML在WebContent文件夹中.我应该更改我的代码吗?
My applet class is in default directory and HTML is in WebContent folder. What should I change in my code?
推荐答案
问题是if
语句检查:
document.CityChoice.City[0].checked == true
这与JavaScript不完全一样,因为那里的错误表达式会引发错误,并且永远不会将其放入if
语句主体中.
This is not exactly how it goes with JavaScript since the wrong expression you have there throws an error and it never makes it into the if
statement body.
我删除了if
语句,并将代码更改为如下内容:
I removed the if
statement and changed the code to something like this:
function selectedCity()
{
document.SimpleMessageApplet.setMessage("Hello");
}
当我单击时,我会看到Hello消息很好.
When I click I see the Hello message fine.
将您的HTML文件内容更改为以下内容:
Change your HTML file content to something like:
<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>
还要添加完整的类代码:
Also adding the full class code:
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);
}
}
这篇关于如何从JavaScript调用applet方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!