⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 聊天室的一个简单设计!但是还不够完善!!! 大家给与指正!!
💻
字号:
import java.net.*; 
import java.io.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.applet.*; 

class Mywindow extends Frame implements ActionListener 

{ 
TextField text1 , text2; 
Button button1 , button2; 

Mywindow() 

{ 
super("发悄悄话窗口"); 
setLayout(new GridLayout(3,2)); 
text1= new TextField(12); 
text2=new TextField(8); 
button1=new Button("送出悄悄话"); 
button2=new Button("关闭窗口"); 
add(new Label("送悄悄话到:")); 
add(text1); 
add(new Label("输入你的悄悄话:")); 
add(text2); 
add(button2); 
add(button1); 
setSize(400,190); 
text1.setEditable(false); 
setVisible(false); 
button1.addActionListener(this); 
button2.addActionListener(this); 
setBackground(Color.pink); 
addWindowListener(new WindowAdapter()) 
{ 
public void windowClosing(WindowEvent e) 
{ 
setVisible(false); 
System.exit(0); 

} 
} 

} 
} 

public void actionPerforemd(ActionEvent e) 
{ 

if(e.getSource()==button1) 

{ 
try 
{ 
chatapplet.out.writeUTF("悄悄地对"+ text1.getText() +" 说 "+ 
text2.getText()+"(我是" + chatapplet.name+")"); 
} 
catch(IOException e1) {} 
} 

else if(e.getSource()==button2) 
{ 
this.setVisible(false); 
} 
} 

class Apanel extends Panel 
{ 
TextField name_txt; 
Button button1,button2; 
Checkbox box1, box2 ,box3; 
CheckboxGroup sex; 

Apanel() 
{ 
name_txt=new TextField(10); 
button1= new Button("进入聊天室"); 
button2= new Button(" 退出聊天室"); 
setLayout(new FlowLayout()); 
sex=new CheckboxGroup(); 
box1=new Checkbox("男",false,sex); 
box2=new Checkbox("女",false,sex); 
box3=new Checkbox("中性",true,sex); 
add(new Label("输入呢称")); 
add(name_txt); add(box1); add(box2); add(box3); 
add(button1); add(button2); 
add(new Label(" ")); 
} 
} 

class Bpanel extends Panel 

{ 
TextArea chat_txt; B2panel b2; 
Bpanel() 
{ 
chat_txt=new TextArea(25,75); 
b2=new B2panel(); 
chat_txt.setEditable(false); 
setLayout(new FlowLayout()); 
add(chat_txt); 
add(b2); 
} 
} 

class B2panel extends Panel 
{ 
java.awt.List list; 
B2panel() 
{ 
msg_txt=new TextField(44); 
button=new Button("刷新谈话区") ; 
button2=new Button("刷新聊天者列表") ; 
setLayout(new FlowLayout()); 
add(new Label("你要说的话")); 
add(button); add(button2); add(button3); 
} 
} 

public class chatapplet extends Applet implements Runnable ,ActionListener ,ItemListener 
{ 
public static final int PORT =1234; 
static String name ,xinbie ; 
Socket socket; int jilu ,enter =0; 
DataInputStream in; 
static DataOutputStream out; 
Thread thread; String line; 
static Apanel a; 
static Bpanel b; 
static Cpanel c; 
static Mywindow mywindow; 

public void init() 
{ 
mywindow=new Mywindow(); 
setBackground(new Color(113,163,139)); 
setLayout(new BorderLayout()); 
a=new Apanel(); 
b=new Bpanel(); 
c=new Cpanel(); 
add("North",a); add("Center",b); add("South",c); 
a.button1.addActionListener(this); 
a.button2.addActionListener(this); 
c.button.addActionListener(this); 
c.button2.addActionListener(this); 
c.button3.addActionListener(this); 
a.box1.addItemListener(this); 
a.box2.addItemListener(this); 
a.box3.addItemListener(this); 
b.b2.list.addActionListener(this); 
add("East",new Label()); 
add("West",new Label()); 
jilu=0; this.setForeground(Color.black); 
c.msg_txt.setBackground(Color.white); 
b.chat_txt.setBackground(new Color(200,185,220)); 
b.chat_txt.setFont(new Font("TimeRoman",Font.PLAIN,12)); 
} 
} 

public void start() 
{ 

this.getCodeBase().getHost() 
try 
{ 
socket=new Socket(this.getCodeBase().getHost(),port); 
in=new DataInputStream(socket.getInputStream()); 
out=new DataOutputStream(socket.getInputStream()); 
} 
catch(IOException e) 
{ 
this.showStatus(e.toString()); 
say(" 欢迎来这里!!!"); 
} 
say(" 欢迎来到聊天室 "); 
if(thread==null) 
{ 
thread=new Thread(this); 
thread.setPriority(Thread.MIN_PRIORITY); 
thread.start(); 
} 
} 

public void stop() 
{ 
try(out.writeUTF("QUIT"); 
catch(IOException e) {} 
} 

public void destroy() 
{ 
try{ socket.close();} 

catch(IOException e) 
{ 
this.showStatus(e.toString()); 
if(thread!=null)&&thread.isAlive()) 
{thread.yield();thread=null;} 
} 

} 

public void run() 
{ 
String line; 
try{while(true) 
{ 
line=in.readUTF(); 
if(line.startsWith("PEOPLE")) 
{ 
String listString=line; 
if(line.endsWith("*")) 
{listString=line.substring(0,(line.length()-1);} 
b.b2.list.add(listString.substring(6)); 
if(!line.endsWith("*")) 
{b.chat_txt.append(line.substring(6)+" 进入聊天室" + ′\n′;} 
else if(line.startsWith("QUIT")) 
{ 
String str=line.substring(10); 
try 
{ 
for (int i=0, k=0; i<=120;i++) 
{ 
String s =b.b2.list.getItem(i); 
if(s.equals(str) 
{k=i;b.b2.list.remove(k); 
b.chat_txr.append(line.substring(10)+"高兴离开了聊天室"+′\n′); 
} 
} 
} 
catch(ArrayIndexOutOfBoundsException e){} 
} 

else if(line.startsWith("MSG")) 
{ 
b.chat_txt.append(line.substring(3)+′\n′); 
} 
else if(line.startsWith("悄悄地对")) 
{ 
b.chat_txt.append(line+′\n′); 
} 

} 
} 

catch(IOException e) 
{ 
say("再见!欢迎再来聊天室,如果想重新进入请单击浏览器的刷新选项"); 

} 

catch(NullPointerException e) {} 
} 


public void actionPerformed(ActionEvent e) 
{ 
if(e.getSource()==a.button1) 
{ 
name=new String(a.name_txt.getText()); 
try 
{ 
for(int i=0;i<120;i++) 

{ 
if((a.name_txt.getTxt()!=null)&&((a.name_txt.getText()+ 
"["+xingbie+"]").equals(b.b2.list.getItem(i))||a.name_txt.getText().equals("该名已经被使用"))) 
{jilu=1;name=null;break} 
} 

} 
catch(ArrayIndexOutOfBoundsException e3) 
{} 
if(jilu==0) 
{ 
try 
{out.writeUTF("PEOPLE"+a.name_txt.getText()+"["+xingbie+"]"); 
enter=1; 
} 
catch(IOException e1) {} 
} 
else if(e.getSource()==a.button2) 
{ 
try 
{ 
out.writeUTF("QUIT"); 
enter=0; 
} 
catch(IOException e1) {} 
b.b2.list.removeAll(); 
} 
else if (e.getSource()==c.button&&enter==1) 
{ 
if ((name!=null)) 
{ 
try 
{ 
out.writeUTF("MSG"+name+"["+xingbie+"]"+"说" +":"+ 
c.msg_txt.getText()); 
c.msg_txt.getText(null); 
} 
catch(IOException e1) {} 
} 
} 
else if(e.getSource()==b.b2.list&&enter=1) 
{ 
mywindow.setVisible(true); 
mywindow.text1.setText(((List)e.getSource()).getSelectedItem()); 
} 
else if(e.getSource==c.button2) 
{ 
b.chat_txt.setText(null); 
} 
else if(e.getSource==c.button3) 
{ 
try 
{b.b2.list.removeAll();out.writeUTF("newlist");} 
catch(IOException e1) {} 
} 
} 
public void itemStateChanged(ItemEvent e1) 
{ 
if(e1.getItemSelectable()==a.box1) 
{ 
xingbie=new String("男"); 

} 
else if(e1.getItemSelectable()==a.box2) 
{ xingbie=new String("女");} 
else if (e1.getItemSelectable()==a.box3) 
{ xingbie=new String("中性");} 
} 

public void say(String msg) 
{ 
b.chat_txt.append("*****"+msg+"*****\n"); 
} 
// } 
} 


 
   
----------------------------------------------
 
-
 
 
 
 2005-05-31 12:46:42   鲜花(0)   鸡蛋(0)       
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -