BBS水木清华站∶精华区
发信人: hasty (闲情逸致), 信区: Java
我写了一个简单的聊天室
服务器端是应用程序,用的是这几个类:
NetworkServer,BufferedReader,BufferedWriter
客户端是Applet,用的是
NetworkClient,BufferedReader,BufferedWriter
支持中文应该是没有问题的
但我在JBuilder中运行Applet,一切正常
而在浏览器(IE 4.0)下运行中文无法显示
而用Appletviewer运行则根本连接不上服务器端
后来我用PrintWriter代替BufferedWriter
结果浏览器下运行时是有些中文能显示,有些就只能是"?"
而在Jbuilder下仍然工作的很好
我百思不得其解,不知道您能不能帮我?
另外,运行客户端需要提供UserName,我现在是在参数中
直接指定了一个值
如果让用户填写一个Form取得UserName,传递给Applet该怎么做呢?
谢谢!
发信人: CinC (Commander), 信区: Java
∶ 另外,运行客户端需要提供UserName,我现在是在参数中
∶ 直接指定了一个值
∶ 如果让用户填写一个Form取得UserName,传递给Applet该怎么做呢?
------------------------------------------------
我的做法:
//InputFrame 类:
import java.awt.*;
import java.awt.event.*;
public class InputFrame extends Frame implements ActionListener{
Button okButton;
TextField tf;
String input=null;
public InputFrame (String str){
setLayout(new GridLayout(3,1));
setSize(200,100);
setLocation (200,200);
add (new Label (str));
tf = new TextField();
tf.addActionListener(this);
add (tf);
okButton = new Button("OK");
okButton.addActionListener(this);
add (okButton);
setVisible(true);
}
// When Enter pressed
public void actionPerformed(ActionEvent e){
String str =tf.getText();
if (str.compareTo("")!=0)
input = tf.getText();
}
// Keep Getting Input until input is not null
public String getInput(){
while (input == null)
try{
Thread.sleep(100);
}catch (Exception e){}
setVisible(false);
return input;
}
}
//测试类:
import java.applet.Applet;
import java.awt.*;
public class MyApplet extends Applet{
String userName;
public MyApplet(){
InputDialog inputDialog = new InputDialog("Please input your name : ");
userName = inputDialog.getInput();
start();
}
public void paint(Graphics g){
g.drawString(userName, 100, 100);
}
}
发信人: hasty (闲情逸致), 信区: Java
【 在 CinC (Commander) 的大作中提到: 】
∶ ------------------------------------------------
∶ 我的做法:
谢谢!看到你的文章之前,根据soybean网友的提示(见3776)
我刚刚用另外一种方法达到目的(利用Javascript):
<script language="JavaScript">
<!-- 填写用户名进入聊天室
function GotoChat(UserName)
{
document.write('<p align="center"><font color="#0000FF" size="5"><strong>东南
大学办公BBS站-聊天室</strong></font></p>');
document.write('<center><applet CODEBASE="chat/" CODE="ChatClient.class"
NAME="Chat" WIDTH="400" HEIGHT="300" HSPACE="0" VSPACE="0" ALIGN="middle">');
document.write('<param name="Host" value=202.119.11.179>');
document.write('<param name="Port" value=7218">');
document.write('<param name="UserName" value='+UserName+'></applet></center>'
);
document.write('<p align="center"><a href="bbsmain.htm"><img
src="images/sonic.gif" alt="返回主选单" border="0" width="42" height="42">返
回主选单</a></p>');
}
// -- 结束JavaScript -->
</script>
<form method="POST" name="FormGetName">
<div align="center"><center><p><font color="#FF00FF"><strong>您的聊天代号:
</strong></font><input
type="text" name="Name" size="20"></p>
</center></div><div align="center"><center><p><input type="submit" value="进
入"
name="B1" onclick="JavaScript:GotoChat(Name.value)"> <input
type="reset"
value="清除" name="B2"></p>
</center></div>
</form>
发信人: NetAnt (马上就要答辩啦), 信区: Java
如果在navigator中,用LiveConnect很方便。在applet中
写个:
public getUsername(String strUsername){
this.strUsername = strUsername;
}
在页面的javascript中直接调就行.
【 在 hasty (闲情逸致) 的大作中提到: 】
∶ 【 在 CinC (Commander) 的大作中提到: 】
∶
∶ 谢谢!看到你的文章之前,根据soybean网友的提示(见3776)
∶ 我刚刚用另外一种方法达到目的(利用Javascript):
∶
∶ <script language="JavaScript">
∶ <!-- 填写用户名进入聊天室
∶ function GotoChat(UserName)
∶ {
∶ document.write('<p align="center"><font color="#0000FF" size="5"><strong>东南
∶ 大学办公BBS站-聊天室</strong></font></p>');
∶ document.write('<center><applet CODEBASE="chat/" CODE="ChatClient.class"
∶ NAME="Chat" WIDTH="400" HEIGHT="300" HSPACE="0" VSPACE="0" ALIGN="middle">');
∶ document.write('<param name="Host" value=202.119.11.179>');
∶ document.write('<param name="Port" value=7218">');
∶ document.write('<param name="UserName" value='+UserName+'></applet></center>'
∶ );
∶ document.write('<p align="center"><a href="bbsmain.htm"><img
∶ src="images/sonic.gif" alt="返回主选单" border="0" width="42" height="42">返
∶ 回主选单</a></p>');
∶ }
∶ // -- 结束JavaScript -->
∶ </script>
∶
∶
∶ <form method="POST" name="FormGetName">
∶ <div align="center"><center><p><font color="#FF00FF"><strong>您的聊天代号:
∶ </strong></font><input
∶ type="text" name="Name" size="20"></p>
∶ </center></div><div align="center"><center><p><input type="submit" value="进
∶ 入"
∶ name="B1" onclick="JavaScript:GotoChat(Name.value)"> <input
∶ type="reset"
∶ value="清除" name="B2"></p>
∶ </center></div>
∶ </form>
BBS水木清华站∶精华区