站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题写了个Applet,大家来看看

写了个Applet,大家来看看

摘要: 写了个Applet,大家来看看


地址是:http://www.cetnh.com/applet/index.htm

其实是以前GaryChan的Java咖啡馆教程里面的内容

就是通过JavaScript从客户端获得参数,然后提交给Applet显示在图片上面

问题是现在只能输入英语和数字作为参数提交,不能输入中文
,请问如何解决这一问题


其中的代码
index.htm

HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">



<head>

大千世界无奇不有



</head>

<body>

<script language="JavaScript">

// 得到URL中的参数

var urlquery = location.href.split("?");
if (urlquery.length > 1) {

// 解析参数并获取from和to

var urlterms = urlquery[1].split("&");

var from = decodeURIComponent(urlterms[0].substring(5));

var to = decodeURIComponent(urlterms[1].substring(3));
// 动态把标签写入HTML

document.write('
');

document.write('

爱琴海上千年罕见的奇观

');

document.write('
');

document.write('
');

document.write('

http://www.sina.com 2006年9月27日 记者:Chengasuka

');

document.write('');

document.write(' ');

document.write(' ');

document.write('');

document.write('

酷似汉字的星辰若隐若现

');

document.write('

世界各地人们蜂拥而来争相观赏

');

document.write('

科学家表示,白天能够达到肉眼辨别的星辰非常罕见。

');

document.write('

据称,如果名字跟星辰相似,一定能够得到神灵的祝福。

');

}

</script>
 <form>

你的名字:

<input name="from" type="text" id="from" width="100">

她的名字:<input name="to" type="text" id="to" width="100">

<input type="submit" name="Submit" value="提交">



</form>

</body>




NewsApplet.java

import java.applet.Applet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;

public class NewsApplet extends Applet {
Image snapshot;
String from,to;
public void init() {
from = null == getParameter("from") ? "大米" : getParameter("from");
to = null == getParameter("to") ? "大米" : getParameter("to");

snapshot = getImage(getCodeBase(),"snapshot.jpg");
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(snapshot,0);

try {
tracker.waitForID(0);
} catch (Exception e) {
System.out.println("无法下载snapshot.jpg!");
}
}

public void paint(Graphics g) {
g.drawImage(snapshot,0,0,snapshot.getWidth(this),snapshot.getHeight(this),this);

g.setFont(new Font("华文彩云",Font.BOLD + Font.ITALIC,18));
g.setColor(Color.white);

g.drawString(from,630,90);
g.drawString("爱",650,105);
g.drawString(to,670,120);
}
}


呵呵


var from = decodeURIComponent(urlterms[0].substring(5));

var to = decodeURIComponent(urlterms[1].substring(3));
改成
var from=urlterms[0].substring(5);
var to=urlterms[1].substring(3);

然后在applet里修改init函数:
添加下面代码:
String from1 = (null==getParameter("from"))?"大米":getParameter("from");
String to1 = (null==getParameter("to"))?"大米":getParameter("to");
try{
from=URLDecoder.decode(from1, "gb2312");
to=URLDecoder.decode(to1, "gb2312");
}catch(Exception e){
e.printStackTrace();
}



up


好像连编译都没有能够通过唉,请上面的大哥给个理由行吗?


编译没通过?我这儿是好的哦~~呵呵,其实主要是因为你输入汉字的话你截到的都是%xxx这样的东西,需要用java的URLDecoder.decode方法来解码,javascript我不熟,反正那个decodeURIComponent方法提示传入的URI格式错误,编译啥错误,发出来看看@_@


编译没有过是由于没有引入java.net.URLEncoder这个包所造成的

但是现在还没有办法提交中文字符,本来再没有用楼上大哥的代码改动前,中文字符更本不能从html页面提交给Applet。现在能提交了,但是显示出来的却是%xxx这样的东西



可以了,我再看看,谢谢楼上的大哥


原文中那个作者说只要把index.htm中定义编码改为utf-8就可,但是在该成了utf-8之后,为何我用浏览器显示出的都是乱码


↑返回目录
前一篇: 向上转型的问题
后一篇: 如何判断大小写的锁定状态