">;
}catch{
}
}
}elseif>
{
System.out.println>;
for;i++>
{
cg=vector.elementAt;
try{
cg.dout.writeUTF;
}catch{
}
}
}elseif>
{
System.out.println>;
for;i++>{
cg=vector.elementAt;
try{
cg.dout.writeUTF;
}catch{
}
}
}
}//
}
classPThreadextendsThread{
protectedSocketsocket;
protectedHomeworkhome;
protectedDataInputStreamdin;
protectedDataOutputStreamdout;
Stringmessage,message1;
PThreadcg;
publicPThread{
this.socket=socket;
this.home=home;
try{
din=newDataInputStream>;
dout=newDataOutputStream>;
}catch{
}
}
publicvoidrun<>{
try{
while{
message1=din.readUTF<>;
if>
{
message=message1.substring<5,message1.indexOf<"">+1>;
if{
for;i++>
{
cg=home.vector.elementAt;
dout.writeUTF<"list"+cg.message>;
}
home.broadcast<"login"+message>;
System.out.println;
}
}if>
{
message=message1.substring<6,message1.indexOf<"]">>;
if{
for;i++>{
cg=home.vector.elementAt;
//dout.writeUTF<"public"+message>;
}
home.broadcast<"public"+message>;
}
}if>
{
message=message1.substring<7,message1.indexOf<"]">>;
if{
for;i++>{
cg=home.vector.elementAt;
//dout.writeUTF<"private"+message>;
}
home.broadcast<"private"+message>;
}
}
}
}catch{
}
}
}
客户端代码:
//聊天室客户端程序
importjava.awt.*;
importjava.applet.Applet;
importjava.applet.AudioClip;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.Date;
import.*;
publicclassHomework_client1extendsAppletimplementsRunnable
{
ListUesrNameList;//显示用户名的列表;
TextAreaText_Area;//显示用户发言的文本域;
JLabelUserName;//显示"用户";
JLabelUName;//"用户"面板;
JLabelPassWord;//显示"登陆口令";
TextFieldPWord;//"登陆口令"文本框;
TextFieldUN;//"用户"文本框;
JTextFieldforField;//"说"文本框;
JTextFieldSayfield;//"发送"文本框;
JLabelVslabel;//"对"面板;
JLabelSaylabel;//"说"面板;
JLabelFrontlabel;//"前景色"面板;
JLabelBacklabel;//"背景色"面板;
JLabelStylelabel;//"字体"面板;
JLabelWordlabel;//"字号"面板;
JButtonEnterbutton;//"进入"按纽;
JButtonQuitbutton;//"退出"按纽;
JButtonSendbutton;//"发送"按纽;
JButtonCanecelbutton;//"刷新"按纽;
CheckboxQuient;//"私聊"复选框;
ChoiceC_style;//"字体"选择框;
ChoiceC_word;//"字号"选择框;
ChoiceC_front;//"前景色"选择框;
ChoiceC_back;//"背景色"选择框;
ChoiceC_music;//"音乐"选择框;
AudioClipSound;//音乐播放器;
JMenuItemPlay;//"play";
JMenuItemLoop;//"loop";
JMenuItemStop;//"stop";
JMenuStart;//"播放器"菜单;
JMenuBarSoundBar;//加载播放菜单;
Socketsocket;//客户端;
ThreadCthread=newThread;
DataInputStreamdin;//数据输入流;
DataOutputStreamdout;//数据输出流;
/*面板的编写*/
publicvoidinit<>{
/*定义左边的组件<用户名、用户列表、登陆按纽等>*/
/*将左边组件进行网格包布局,并添加到面板*/
//ThreadCthread;//创建一个和客户端进行通信的线程;
UesrNameList=newList<19>;
UesrNameList.setBackground;
UesrNameList.setForeground>;
UesrNameList.setFont>;
UserName=newJLabel<"用户姓名">;
UserName.setFont>;
UName=newJLabel<"姓名">;
UN=newTextField<11>;
UN.setFont>;
PassWord=newJLabel<"密码">;
PWord=newTextField<11>;
PWord.setEchoChar<'*'>;
Enterbutton=newJButton<"进入">;
Enterbutton.setBackground>;
Enterbutton.setToolTipText<"点此连接服务器">;
Quitbutton=newJButton<"退出">;
Quitbutton.setToolTipText<"点此离开聊天室">;
Quitbutton.setEnabled;
Quitbutton.setBackground>;
C_music=newChoice<>;//初始化音乐控件;
C_music.add<"遇见.mid">;
C_music.add<"十年.mid">;
SoundBar=newJMenuBar<>;
SoundBar.setBackground>;
Start=newJMenu<"音乐">;
Start.setBackground>;
Play=newJMenuItem<"播放">;
Loop=newJMenuItem<"循环">;
Stop=newJMenuItem<"停止">;
Start.add;
Start.add;
Start.add;
SoundBar.add;
Sound=getAudioClip,"遇见.mid">;
JPanelpanel_0=newJPanel<>;
panel_0.setBackground>;
GridBagLayoutgb_0=newGridBagLayout<>;
GridBagConstraintsgc_0=newGridBagConstraints<>;
gc_0.fill=GridBagConstraints.NONE;
gc_0.weightx=0.0;
gc_0.weighty=0.0;
gb_0.setConstraints;
gb_0.setConstraints;
panel_0.setLayout;
panel_0.add;
panel_0.add;
JPanelpanel_1=newJPanel<>;
panel_1.setBackground>;
panel_1.add;
panel_1.add;
JPanelpanel_2=newJPanel<>;
panel_2.setBackground>;
panel_2.add;
panel_2.add;
JPanelpanel_3=newJPanel<>;
panel_3.setBackground>;
panel_3.add;
panel_3.add;
JPanelNO1panel=newJPanel<>;
NO1panel.setBackground>;
GridBagLayoutgb_1=newGridBagLayout<>;
GridBagConstraintsgc_1=newGridBagConstraints<>;
gc_1.anchor=GridBagConstraints.NORTHWEST;
gc_1.gridx=0;
gc_1.gridy=0;
gb_1.setConstraints;
gc_1.anchor=GridBagConstraints.NORTHWEST;
gc_1.gridx=0;
gc_1.gridy=1;
gb_1.setConstraints;
gc_1.anchor=GridBagConstraints.NORTHWEST;
gc_1.gridx=0;
gc_1.gridy=2;
gb_1.setConstraints;
gc_1.anchor=GridBagConstraints.NORTHWEST;
gc_1.gridx=0;
gc_1.gridy=3;
gb_1.setConstraints;
gc_1.anchor=GridBagConstraints.NORTHWEST;
gc_1.gridx=0;
gc_1.gridy=4;
gb_1.setConstraints;
gc_1.anchor=GridBagConstraints.NORTHWEST;
gc_1.gridx=0;
gc_1.gridy=5;
gb_1.setConstraints;
NO1panel.setLayout;
NO1panel.add;
NO1panel.add;
NO1panel.add;
NO1panel.add;
NO1panel.add;
NO1panel.add;
/*定义右下方中间的组件*/
Quient=newCheckbox<"私聊",false>;
Quient.setBackground>;
Quient.setSize<1,1>;
Vslabel=newJLabel<"对">;
Vslabel.setSize<1,1>;
forField=newJTextField<7>;
forField.setEditable;
Saylabel=newJLabel<"说">;
Saylabel.setSize<1,1>;
Sayfield=newJTextField<28>;
Sayfield.setFont>;
Sayfield.setEditable;
Sendbutton=newJButton<"发送">;
Sendbutton.setEnabled;
Sendbutton.setBackground>;
/*定义右下方下层组件*/
Stylelabel=newJLabel<"字体">;
Stylelabel.setSize<1,1>;
Wordlabel=newJLabel<"表情">;
Wordlabel.setSize<1,1>;
Frontlabel=newJLabel<"前景色">;
Frontlabel.setSize<1,1>;
Backlabel=newJLabel<"背景色">;
Backlabel.setSize<1,1>;
Canecelbutton=newJButton<"刷新">;
Canecelbutton.setBackground>;
C_style=newChoice<>;//字体选择框
C_style.addItem<"BLOD">;
C_style.addItem<"ITALIC">;
C_style.addItem<"PLAIN">;
C_word=newChoice<>;//表情选择框
C_word.setSize<2,1>;
C_word.addItem<"无">;
C_word.add