The Client Code consists of 7 files :
 
 
import java.applet.Applet;
import java.awt.*;
import java.util.*;
public class Conference extends Applet
{
ConfDraw confdraw;
IntroCanvas introcanvas;
public String host=new String(" ");
public void init()
{
host=getParameter("IP_Address");
this.setBackground(new Color(250,0,0));
introcanvas = new IntroCanvas(this);
introcanvas.show();
introcanvas.toFront();
}
public void destroy()
{
introcanvas.dispose();
}
}
Back to starting of page
 
 
 
import java.awt.*;
import java.net.*;
import java.util.*;
import java.io.*;
public class IntroCanvas extends Frame
{
public ConfDraw confdraw;
public Conference conference;
Label label_name;
Label label_nick;
Label label_logo;
Label label_copywrite;
Label label_enter;
Label label_register;
TextField ts0,ts1;
Button sbutton;
public String Name = new String("");
public String Nick = new String("");
public Color backcolor,stripcolor;
public IntroCanvas(Conference c)
{
super("Chatroom Login");
this.conference = c;
setLayout(null);
backcolor = new Color(131,146,214);
stripcolor= new Color(0,0,160);
this.setBackground(backcolor);
addNotify();
reshape(insets().left + 45,30,insets().left+insets().right + 498,insets().top + insets().bottom + 335);
this.setResizable(false);
label_logo = new Label("Cyber Chat",Label.CENTER);
add(label_logo);
label_logo.setFont(new Font("Helvetica",Font.BOLD+ Font.ITALIC ,45));
label_logo.setForeground(Color.cyan);
label_logo.setBackground(stripcolor);
label_logo.reshape(insets().left + 0,insets().top + 30,500,50);
label_copywrite = new Label("Copyright 1999 - Anuja,CV,Hiren,Neeraj",Label.CENTER);
add(label_copywrite);
label_copywrite.setFont(new Font("Helvetica",Font.PLAIN,11));
label_copywrite.setForeground(Color.black);
label_copywrite.reshape(insets().left + 0,insets().top + 90,500,15);
label_enter = new Label("Enter your Name and Nick Name",Label.CENTER);
add(label_enter);
label_enter.setFont(new Font("Helvetica",Font.PLAIN,15));
label_enter.setForeground(Color.black);
label_enter.reshape(insets().left + 0,insets().top + 150,500,20);
label_register = new Label("To Register yourself",Label.CENTER);
add(label_register);
label_register.setFont(new Font("Helvetica",Font.PLAIN,15));
label_register.setForeground(Color.black);
label_register.reshape(insets().left + 0,insets().top + 175,500,20);
label_name= new Label("Name:");
add(label_name);
label_name.setFont(new Font("Helvetica",Font.PLAIN,13));
label_name.setForeground(Color.black);
label_name.reshape(insets().left + 55,insets().top +230,50,15);
ts0=new TextField(45);
ts0.setFont(new Font("Dialog",Font.PLAIN,15));
add(ts0);
ts0.show();
ts0.reshape(insets().left + 55,insets().top + 250,200,25);
ts0.setBackground(Color.black);
ts0.setForeground(Color.cyan);
label_nick= new Label("Nick Name:");
add(label_nick);
label_nick.setFont(new Font("Helvetica",Font.PLAIN,13));
label_nick.setForeground(Color.black);
label_nick.reshape(insets().left + 260,insets().top +230,90,15);
ts1=new TextField(45);
ts1.setFont(new Font("Dialog",Font.PLAIN,15));
add(ts1);
ts1.show();
ts1.reshape(insets().left + 260,insets().top + 250,200,25);
ts1.setBackground(Color.black);
ts1.setForeground(Color.cyan);
sbutton=new Button("Login");
add(sbutton);
sbutton.show();
sbutton.setFont(new Font("Helvetica",Font.PLAIN,15));
sbutton.reshape(insets().left + 210,insets().top + 290,100,20);
sbutton.setBackground(new Color(0,0,160));
sbutton.setForeground(Color.cyan);
}
public void destroy()
{
confdraw.cp.sendData("q" + ":");
confdraw.dispose();
conference.destroy();
}
public boolean action(Event e,Object SelectedItem)
{
String buttonText = new String((String)e.arg) ;
int count=0;int count1=0;
if(buttonText.equals("Login"))
{
Name=ts0.getText();
Nick=ts1.getText();
if((Name.length()!=0)&&(Nick.length()!=0))
{
this.hide();
confdraw = new ConfDraw(conference,this);
confdraw.show();
confdraw.toFront();
return true;
}
else return false;
}
else return false;
}
}
Back to starting of page
 
 
 
import java.awt.*;
import java.net.*;
import java.util.*;
import java.io.*;
class ConfDraw extends Frame
{
public Conference client;
public IntroCanvas introcanvas;
Label label_UserName;
Label label_mesg;
Label label_ChannelName;
Label label_UserList;
Label label_ChannelList;
Label label_mood;
Label label_sendto;
Label label_type;
TextField ts;
List ls;
List lm;
TextArea lChat;
List lUser;
List lCh;
Button isend;
Button ibye;
Button ichangeroom;
Button eprivate;
Button isquelch;
Button iunsquelch;
String UserName = null;
String UserName1=null;
String ChannelName = "General Chat";
boolean usersOn = false;
boolean send = true;
int Count = 1;
String lastAction;
String lastMessage;
ConnectProcessing cp;
RefreshUsers refreshUsers;
PingChatServer ping;
ConfUsersDraw confusersdraw;
URL url;
DataInputStream inStream;
String inputLine;
public ConfDraw(Conference client,IntroCanvas i)
{
super("Welcome to the ChatRoom");
System.out.println("In Constructor of ConfDraw " );
this.client = client;
this.introcanvas = i;
setLayout(null);
this.setBackground(new Color(164,108,153));
addNotify();
reshape(insets().left + 15,0,insets().left + insets().right + 598,insets().top + insets().bottom + 420);
this.setResizable(false);
label_ChannelName = new Label("Name of Channel : " + ChannelName);
add(label_ChannelName);
label_ChannelName.show();
label_ChannelName.setForeground(new Color(220,216,39));
label_ChannelName.reshape(insets().left + 120,insets().top + 7,300,15);
lChat = new TextArea(50,0);
add(lChat);
lChat.show();
lChat.setEditable(false);
lChat.setBackground((new Color(70,48,129)));
lChat.setForeground(Color.white);
lChat.reshape(insets().left + 21,insets().top + 30,413,250);
label_ChannelList = new Label("Channel List " ,Label.CENTER);
add(label_ChannelList);
label_ChannelList.show();
label_ChannelList.setForeground(new Color(220,216,39));
label_ChannelList.reshape(insets().left + 476,insets().top + 7,98,15);
lCh = new List(6,false);
add(lCh);
lCh.show();
lCh.setBackground((new Color(70,48,129)));
lCh.setForeground(Color.white);
lCh.reshape(insets().left + 470,insets().top + 30,119,98);
ichangeroom= new Button("Change Channel");
add(ichangeroom);
ichangeroom.show();
ichangeroom.setFont(new Font("Dialog",Font.BOLD,10));
ichangeroom.reshape(insets().left+470,insets().top+133,120,18);
ichangeroom.setBackground(new Color(125,38,117));
ichangeroom.setForeground(new Color(160,160,164));
Label label_type = new Label("Type Here..");
add(label_type);
label_type.setFont(new Font("Dialog",Font.PLAIN,12));
label_type.setForeground(new Color(220,216,39));
label_type.reshape(insets().left + 21,insets().top + 285,80,15);
ts = new TextField(45);
ts.setFont(new Font("Dialog",Font.PLAIN,12));
add(ts);
ts.show();
ts.setEditable(true);
ts.reshape(insets().left + 21,insets().top + 305,413,20);
ts.setBackground((new Color(70,48,129)));
ts.setForeground(Color.white);
ts.setText(" ");
label_UserList = new Label("User List " ,Label.CENTER);
add(label_UserList);
label_UserList.show();
label_UserList.setForeground(new Color(220,216,39));
label_UserList.reshape(insets().left + 474,insets().top +170,115,15);
lUser = new List(6, false);
add(lUser);
lUser.show();
lUser.setBackground((new Color(70,48,129)));
lUser.setForeground(Color.white);
lUser.reshape(insets().left + 470,insets().top + 192,119,133);
Label label_mess = new Label("You are",Label.CENTER);
add(label_mess);
label_mess.setFont(new Font("Dialog",Font.BOLD+Font.ITALIC,15));
label_mess.setForeground(new Color(220,216,39));
label_mess.reshape(insets().left + 30,insets().top + 355,80,17);
label_UserName = new Label("",Label.CENTER);
add(label_UserName);
label_UserName.setFont(new Font("Dialog",Font.BOLD+Font.ITALIC,15));
label_UserName.setForeground(new Color(220,216,39));
label_UserName.reshape(insets().left + 30,insets().top + 375,80,17);
label_mood = new Label("Choose Your Mood");
add(label_mood);
label_mood.setFont(new Font("Dialog",Font.PLAIN,12));
label_mood.setForeground(new Color(220,216,39));
label_mood.reshape(insets().left + 125,insets().top + 335,150,15);
ls = new List(3,false);
add(ls);
ls.setForeground(Color.white);
ls.show();
ls.reshape(insets().left + 125,insets().top + 360,150,35);
ls.setBackground((new Color(70,48,129)));
ls.addItem("Select an action");
ls.addItem("shouts at");
ls.addItem("yells");
ls.addItem("grins");
ls.addItem("sneezes");
ls.select(0);
/*Adding buttons */
isend= new Button("Send");
add(isend);
isend.show();
isend.setFont(new Font("Dialog",Font.BOLD,10));
isend.reshape(insets().left+300,insets().top+350,120,18);
isend.setBackground(new Color(125,38,117));
isend.setForeground(new Color(160,160,164));
isquelch= new Button("(Un)squelch User");
add(isquelch);
isquelch.show();
isquelch.setFont(new Font("Dialog",Font.BOLD,10));
isquelch.reshape(insets().left+300,insets().top+375,120,18);
isquelch.setBackground(new Color(125,38,117));
isquelch.setForeground(new Color(160,160,164));
eprivate= new Button("Private Chat");
add(eprivate);
eprivate.show();
eprivate.setFont(new Font("Dialog",Font.BOLD,10));
eprivate.reshape(insets().left+470,insets().top+350,120,18);
eprivate.setBackground(new Color(125,38,117));
eprivate.setForeground(new Color(160,160,164));
ibye= new Button("Exit Chat");
add(ibye);
ibye.show();
ibye.setFont(new Font("Dialog",Font.BOLD,10));
ibye.reshape(insets().left+470,insets().top+375,120,18);
ibye.setBackground(new Color(125,38,117));
ibye.setForeground(new Color(160,160,164));
UserName = introcanvas.Nick;
label_UserName.setText(UserName);
UserName1 = introcanvas.Name;
/** drawing the user(s) online frame **/
confusersdraw = new ConfUsersDraw(this);
/** call the thread which will make the socket communications **/
cp = new ConnectProcessing(this,this.client);
cp.setPriority(10);
cp.readFile();
cp.start();
/* This is the first message that client sends to the Server */
cp.sendData("n" + ":" + UserName1 + ":" +UserName );
/** call another thread which will update the total users online **/
refreshUsers = new RefreshUsers(this);
refreshUsers.setPriority(10);
refreshUsers.start();
lCh.select(0);
/* call the ping thread.*/
ping = new PingChatServer(this);
ping.setPriority(10);
ping.start();
}
public boolean action(Event e,Object selectedItem)
{
String buttonText= new String((String) e.arg);
if(buttonText.equals("Exit Chat"))
{
confusersdraw.dispose();
introcanvas.destroy();
return true;
}
/* for squelch Button */
if(buttonText.equals("(Un)squelch User"))
{
int a=0;
if(lUser.getSelectedItem().equals(UserName1))
{
lChat.appendText("-- You cannot (Un) Squelch yourself --"+"\n");
return true;
}
if( lUser.getSelectedItem().endsWith("**") == false)
{
for(a=0;a < confusersdraw.list_Chat1.countItems();a++)
{
if(confusersdraw.list_Chat1.getItem(a).equals(lUser.getSelectedItem()))
{
confusersdraw.list_Chat1.replaceItem((lUser.getSelectedItem() + "**"), a);
}
}
lUser.replaceItem(( lUser.getSelectedItem() + "**"), lUser.getSelectedIndex());
lUser.select(0);
}
else
{
/*unsquelch the squelched user*/
int i = lUser.getSelectedItem().indexOf("**");
String tmp = new String("");
tmp = lUser.getSelectedItem().substring(0,i);
for(a=0;a < confusersdraw.list_Chat1.countItems();a++)
{
if(confusersdraw.list_Chat1.getItem(a).equals(lUser.getSelectedItem()))
{
confusersdraw.list_Chat1.replaceItem(tmp,a);
}
}
lUser.replaceItem(tmp, lUser.getSelectedIndex());
lUser.select(0);
}
return true;
}
/* End of handling for squelch button */
/* for Send Button */
if(buttonText.equals("Send"))
{
if(lUser.countItems()==1)
{
lChat.appendText("-- You are alone in this channel. --" + "\n");
ts.setText("");
}
else if(lUser.countItems() > 1)
{
if(ts.getText() != null)
{
String xx = new String(ts.getText());
if(xx.length() > 55)
{
lChat.appendText("-- Do not type in long messages --" + "\n");
lChat.appendText("-- TRY AGAIN... --" + "\n");
ts.setText("");
return true;
}
/*To Check for same user name*/
if(lUser.getSelectedItem().equals(UserName1))
{
lChat.appendText("-- You can not send message to yourself --"+"\n");
ts.setText("");
return true;
}
if(ls.getSelectedItem().compareTo("Select an action") == 0)
{
if(ts.getText().length() > 0)
{
lastMessage = ts.getText();
lastAction = "m" + ":" + ts.getText();
if(send)
{
cp.sendData(lastAction);
}
lChat.appendText("(" + UserName + ") " + ts.getText() + "\n");
ts.setText("");
}
}
else if(ls.getSelectedItem().compareTo("Select an action") != 0)
{
if(lUser.getSelectedItem() == null)
{
}
else if(lUser.getSelectedItem() != null)
{
/** if user has been selected **/
for(int i = 0; i < ls.countItems(); i++)
{
if(ls.getItem(i).compareTo(ls.getSelectedItem()) == 0)
{
if(cp.slang_value[i] == 1)
{
if( lUser.getSelectedItem().endsWith("**") == true)
{
int j = lUser.getSelectedItem().indexOf("**");
String tmp1 = new String("");
tmp1 = lUser.getSelectedItem().substring(0,j);
lastMessage = ls.getSelectedItem().toUpperCase() + " " + lUser.getSelectedItem();
lastAction = "m" + ":" + " " + ls.getSelectedItem().toUpperCase() + " " +
tmp1;
}
else
{
lastMessage = ls.getSelectedItem().toUpperCase() + " " + lUser.getSelectedItem();
lastAction = "m" + ":" + " " + ls.getSelectedItem().toUpperCase() + " " +
lUser.getSelectedItem();
}
if(send)
{
cp.sendData(lastAction);
}
lChat.appendText("(" + UserName + ") " + ls.getSelectedItem().toUpperCase() + " " + lUser.getSelectedItem() + "\n");
ls.select(0);
}
else if(cp.slang_value[i] == 0)
{
lastMessage = ls.getSelectedItem().toUpperCase() + " ";
lastAction = "m" + ":" + " " + ls.getSelectedItem().toUpperCase() + " ";
if(send)
{
cp.sendData(lastAction);
}
lChat.appendText("(" + UserName + ") " + ls.getSelectedItem().toUpperCase() + " " + "\n");
ls.select(0);
}
}
}
/** end of user selected **/
}
}
}
/** end of send data **/
}
return true;
}
/* End of handling for Send Button */
if(buttonText.equals("Private Chat"))
{
confusersdraw.list_Chat1.clear();
int count=lUser.countItems();
if(count>1)
{
for(int i=0;i < count;i++)
{
confusersdraw.list_Chat1.addItem(new String(lUser.getItem(i)));
}
confusersdraw.list_Chat1.select(0);
confusersdraw.show();
confusersdraw.toFront();
return true;
}
else
{
lChat.appendText("-- You are alone in this chat room --"+"\n");
return true;
}
}
if(buttonText.equals("Change Channel"))
{
/** handling the change of channels. **/
if(lCh.getSelectedItem() != null)
{
ChannelName = lCh.getSelectedItem();
label_ChannelName.setText("Name of Channel : "+ ChannelName);
cp.sendData("c" + ":" + ChannelName);
}
return true;
}
if(e.id == Event.WINDOW_DESTROY)
{
this.dispose();
client.destroy();
return true;
}
/* for Enter Button */
if(e.key == 0)
{
if(lUser.countItems() == 1)
{
lChat.appendText("-- You are alone in this channel. --" + "\n");
ts.setText("");
}
else if(lUser.countItems() > 1)
{
if(ts.getText() != null)
{
String xx = new String(ts.getText());
if(xx.length() > 55)
{
lChat.appendText("-- Do not type in long messages --" + "\n");
lChat.appendText("-- TRY AGAIN... --" + "\n");
ts.setText("");
return true;
}
/* to Check for same user name */
if(lUser.getSelectedItem().equals(UserName1) )
{
lChat.appendText("-- You can not send message to yourself --"+"\n");
ts.setText("");
return true;
}
if(ls.getSelectedItem().compareTo("Select an action") == 0)
{
if(ts.getText().length() > 0)
{
lastMessage = ts.getText();
lastAction = "m" + ":" + ts.getText();
if(send)
{
cp.sendData(lastAction);
}
lChat.appendText("(" + UserName + ") " + ts.getText() + "\n");
ts.setText("");
}
}
else if(ls.getSelectedItem().compareTo("Select an action") != 0)
{
if(lUser.getSelectedItem() == null)
{
}
else if(lUser.getSelectedItem() != null)
{
/** if user has been selected **/
for(int i = 0; i < ls.countItems(); i++)
{
if(ls.getItem(i).compareTo(ls.getSelectedItem()) == 0)
{
if(cp.slang_value[i] == 1)
{
if( lUser.getSelectedItem().endsWith("**") == true)
{
int j = lUser.getSelectedItem().indexOf("**");
String tmp1 = new String("");
tmp1 = lUser.getSelectedItem().substring(0,j);
lastMessage = ls.getSelectedItem().toUpperCase() + " " + lUser.getSelectedItem();
lastAction = "m" + ":" + " " + ls.getSelectedItem().toUpperCase() + " " +
tmp1;
}
else
{
lastMessage = ls.getSelectedItem().toUpperCase() + " " + lUser.getSelectedItem();
lastAction = "m" + ":" + " " + ls.getSelectedItem().toUpperCase() + " " +
lUser.getSelectedItem();
}
if(send)
{
cp.sendData(lastAction);
}
lChat.appendText("(" + UserName + ") " + ls.getSelectedItem().toUpperCase() + " " + lUser.getSelectedItem() + "\n");
ls.select(0);
}
else if(cp.slang_value[i] == 0)
{
lastMessage = ls.getSelectedItem().toUpperCase() + " ";
lastAction = "m" + ":" + " " + ls.getSelectedItem().toUpperCase() + " ";
if(send)
{
cp.sendData(lastAction);
}
lChat.appendText("(" + UserName + ") " + ls.getSelectedItem().toUpperCase() + " " + "\n");
ls.select(0);
}
}
}
/** end of user selected **/
}
}
}
/** end of send data **/
}
return true;
}
/* End of handling for Enter Button */
return false;
}
}
Back to starting of page
 
 
 
import java.awt.*;
import java.net.*;
import java.util.*;
import java.io.*;
class ConnectProcessing extends Thread
{
int retryCount = 0;
ConfDraw client;
Conference appletRef;
String host = new String(" ");
final int port = 2000;
Socket socket;
int i = 0;
DataInputStream dataURL;
DataInputStream dataIn;
PrintStream dataOut;
String inputLine;
int[] slang_value = new int[20];
public ConnectProcessing(ConfDraw client,Conference appletRef)
{
this.client = client;
this.appletRef = appletRef;
this.host = appletRef.host;
try
{
socket = new Socket(host,2000);
dataIn = new DataInputStream(socket.getInputStream());
dataOut = new PrintStream(socket.getOutputStream());
}
catch (UnknownHostException e)
{
System.out.println("ERROR "+e+"\n");
}
catch(IOException e)
{
System.out.println("ERROR "+e+"\n");
}
}
public synchronized void run()
{
while(chat())
{
}
}
public String readData()
{
StringBuffer buffer = new StringBuffer();
char tmp = ' ';
try
{
while(true)
{
tmp = dataIn.readChar();
if(tmp == '\n')
{
return buffer.toString();
}
else
{
buffer.append(tmp);
}
}
}
catch (IOException e)
{
}
return buffer.toString();
}
public boolean chat()
{
String recievedMessage = null;
StringTokenizer tokens;
StringTokenizer userList;
try
{
recievedMessage = readData();
System.out.println("RECD=" + recievedMessage);
}
catch(Exception e)
{
}
if(recievedMessage != null)
{
try
{
tokens = new StringTokenizer(recievedMessage,":");
String firstToken = tokens.nextToken();
if(firstToken.equals("$"))
{
String from=new String(" ");
String mesg=null;
from=tokens.nextToken();
mesg=tokens.nextToken();
String temp=null;
int c = 0,d=0;
for(d= 0;d < client.lUser.countItems();d++)
{
if(client.lUser.getItem(d).endsWith("**"))
{
c=client.lUser.getItem(d).indexOf("**");
temp=client.lUser.getItem(d).substring(0,c);
if(temp.equals(from))
return true;
}
}
client.confusersdraw.show();
client.confusersdraw.toFront();
client.confusersdraw.ts1.appendText("("+from+")"+":"+mesg+"\n");
client.confusersdraw.list_Chat1.clear();
int count=client.lUser.countItems();
if(count > 1)
{
for(int i=0;i < count;i++)
{
client.confusersdraw.list_Chat1.addItem(new String(client.lUser.getItem(i)));
}
}
client.confusersdraw.list_Chat1.select(0);
return true;
}
else if(firstToken.equals("c"))
{
while(tokens.hasMoreTokens())
{
String useradd = tokens.nextToken();
client.lChat.appendText("-- " + useradd + " has entered channel " + client.ChannelName + " --" + "\n");
client.lUser.addItem(useradd);
}
client.label_UserList.setText(" " + client.lUser.countItems() + " user(s) in channel");
return true;
}
else if(firstToken.equals("L"))
{
while(tokens.hasMoreTokens())
{
client.lCh.addItem(tokens.nextToken());
}
return true;
}
else if(firstToken.equals("d"))
{
while(tokens.hasMoreTokens())
{
client.lChat.appendText("-- " + tokens.nextToken() + " --" + "\n");
}
return true;
}
else if(firstToken.equals("Q"))
{
while(tokens.hasMoreTokens())
{
String userdel = tokens.nextToken();
client.lChat.appendText("-- " + userdel + " has left this channel. --" + "\n");
for(int i = 0; i < client.lUser.countItems(); i++)
{
if(client.lUser.getItem(i).compareTo(userdel) == 0)
{
client.lUser.delItem(i);
}
}
}
client.label_UserList.setText(" " + client.lUser.countItems() + " user(s) in channel");
return true;
}
else if(firstToken.equals("C"))
{
String valid = tokens.nextToken();
if(valid.compareTo("Y") == 0)
{
client.lChat.appendText("--The Channel change to " + client.ChannelName + " was successful--\n");
}
else if(valid.compareTo("N") == 0)
{
client.lChat.appendText("--The Channel change to " + client.ChannelName + " was not successful--\n");
}
return true;
}
else if(firstToken.equals("n"))
{
String name = new String(tokens.nextToken());
String valid = new String(tokens.nextToken());
if(valid.equals("Y") == true)
{
client.lChat.appendText("-- " + name + " has just entered channel " + client.ChannelName + " --" + "\n");
return true;
}
if(valid.equals("N") == true)
{
client.lChat.appendText("-- Same login name exists --" + "\n");
client.lChat.appendText("-- Please Exit Chat and TRY AGAIN --" + "\n");
return true;
}
if(valid.equals("F") == true)
{
appletRef.destroy();
return true;
}
return true;
}
else if(firstToken.equals("m"))
{
String message = null;
String userName = null;
while(tokens.hasMoreTokens())
{
userName = new String(tokens.nextToken());
message = new String(tokens.nextToken());
}
System.out.println(userName+" :" + message);
String tmp = null;
int k= 0;
for(int j= 0;j < client.lUser.countItems();j++)
{
if(client.lUser.getItem(j).endsWith("**"))
{
k=client.lUser.getItem(j).indexOf("**");
tmp=client.lUser.getItem(j).substring(0,k);
if(tmp.equals(userName))
return true;
}
}
client.lChat.appendText("--" + "(" + userName + ")" + " " + message + "--" + "\n");
return true;
}
/** end of handling **/
/** handling routine for a w: **/
else if(firstToken.equals("w"))
{
for(int i = 0; i < 6; i++)
{
client.lUser.clear();
}
while(tokens.hasMoreTokens())
{
String member = new String(tokens.nextToken());
client.lUser.addItem(member);
}
client.label_UserList.setText(" " + client.lUser.countItems() + " user(s) in channel");
client.lUser.select(0);
return true;
}
/** end of handling **/
/** handling routine for a q:**/
else if(firstToken.equals("q"))
{
while(tokens.hasMoreTokens())
{
String User = new String(tokens.nextToken());
client.lChat.appendText("-- " + User + " has quit the chat. --" + "\n");
client.confusersdraw.ts1.appendText("-- " + User + " has quit the chat. --" + "\n");
for(int i = 0; i < client.lUser.countItems(); i++)
{
try
{
if(client.lUser.getItem(i).equals(User))
{
client.lUser.delItem(i);
}
else if(client.lUser.getItem(i).endsWith("**"))
{
int z = client.lUser.getItem(i).indexOf("**");
String tp = new String("");
tp = client.lUser.getItem(i).substring(0,z);
if(tp.equals(User))
{
client.lUser.delItem(i);
}
}
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("Handle the error :"+e);
}
}
for(i = 0; i < client.confusersdraw.list_Chat1.countItems(); i++)
{
try
{
if(client.confusersdraw.list_Chat1.getItem(i).endsWith("**"))
{
int z = client.confusersdraw.list_Chat1.getItem(i).indexOf("**");
String tp = new String("");
tp = client.confusersdraw.list_Chat1.getItem(i).substring(0,z);
if(tp.equals(User))
{
client.confusersdraw.list_Chat1.delItem(i);
}
}
else if(client.confusersdraw.list_Chat1.getItem(i).equals(User))
{
client.confusersdraw.list_Chat1.delItem(i);
}
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("Handle the error :"+e);
}
}
client.label_UserList.setText(" " + client.lUser.countItems() + " user(s) in channel");
return true;
}
return true;
}/* end of else*/
} /* end of try */
catch(NoSuchElementException ne)
{
}
/** end of routine **/
}
else
{
client.lChat.appendText("Connect request timed out...\n");
client.lChat.appendText("Retrying after 10 seconds...\n");
try
{
this.sleep(10000);
}
catch(InterruptedException e)
{
}
retryCount++;
if(retryCount == 3)
{
client.lChat.appendText("Connection to Chat server site failed...\n");
return true;
}
return false;
}
return false;
}
public void readFile()
{
slang_value[0] = 1;
slang_value[1] = 1;
slang_value[2] = 0;
slang_value[3] = 0;
}
public void sendData(String message)
{
try
{
dataOut.println(message);
dataOut.flush();
}
catch(Exception e)
{
System.out.println("Dataout Exception :" + e.toString());
}
}
}
Back to starting of page
 
 
 
import java.awt.*;
import java.util.*;
class ConfUsersDraw extends Frame
{
ConfDraw client; /** reference to the main frame class **/
Label label_mes;
Label label_Username;
Label label_Ulist;
Label label_tmesg;
Label label_pmesg;
TextField ts;
TextArea ts1;
List list_Chat1;
Button iprivate;
Button icancel;
StringTokenizer tokens;
public ConfUsersDraw(ConfDraw client)
{
super("Private Chatroom.");
this.client = client; /** reference to the main frame class **/
setLayout(null);
this.setBackground(new Color(72,96,80));
addNotify();
reshape(insets().left +15,0, insets().left + insets().right + 450, insets().top + insets().bottom + 420);
this.setResizable(false);
Label label_pmesg = new Label("Private Message:");
add(label_pmesg);
label_pmesg.setFont(new Font("Dialog",Font.BOLD,12));
label_pmesg.setForeground(Color.white);
label_pmesg.reshape(insets().left + 30,insets().top + 30,100,15);
ts1 = new TextArea(15,0);
add(ts1);
ts1.show();
ts1.setEditable(false);
ts1.setBackground(new Color(144,128,112));
ts1.setForeground(Color.black);
ts1.reshape(insets().left + 21,insets().top + 50,310,250);
Label label_Ulist = new Label("User(s) List");
add(label_Ulist);
label_Ulist.setFont(new Font("Dialog",Font.BOLD,12));
label_Ulist.setForeground(Color.white);
label_Ulist.reshape(insets().left + 342,insets().top + 30,80,15);
list_Chat1 = new List(12,false);
add(list_Chat1);
list_Chat1.show();
list_Chat1.setBackground(new Color(144,128,112));
list_Chat1.setForeground(Color.black);
list_Chat1.reshape(insets().left + 342,insets().top + 50,80,250);
Label label_tmesg = new Label("Type Here..");
add(label_tmesg);
label_tmesg.setFont(new Font("Dialog",Font.BOLD,12));
label_tmesg.setForeground(Color.white);
label_tmesg.reshape(insets().left + 21,insets().top + 310,100,15);
ts = new TextField("");
add(ts);
ts.show();
ts.setBackground(new Color(144,128,112));
ts.setForeground(Color.black);
ts.reshape(insets().left + 21,insets().top + 335,400,20);
Label label_mes = new Label("You are",Label.CENTER);
add(label_mes);
label_mes.setFont(new Font("Dialog",Font.BOLD+Font.ITALIC,15));
label_mes.setForeground(Color.white);
label_mes.reshape(insets().left + 21,insets().top + 365,70,18);
label_Username = new Label("",Label.CENTER);
add(label_Username);
label_Username.setFont(new Font("Dialog",Font.BOLD+Font.ITALIC,15));
label_Username.setForeground(Color.white);
label_Username.reshape(insets().left + 21,insets().top + 385,70,18);
iprivate= new Button("Send");
add(iprivate);
iprivate.show();
iprivate.setFont(new Font("Dialog",Font.BOLD,10));
iprivate.reshape(insets().left+120,insets().top+370,120,18);
iprivate.setBackground(new Color(144,128,112));
iprivate.setForeground(Color.black);
icancel= new Button("Cancel");
add(icancel);
icancel.show();
icancel.setFont(new Font("Dialog",Font.BOLD,10));
icancel.reshape(insets().left+260,insets().top+370,120,18);
icancel.setBackground(new Color(144,128,112));
icancel.setForeground(Color.black);
client.UserName = client.introcanvas.Nick;
client.UserName1 = client.introcanvas.Name;
label_Username.setText(client.UserName);
}
public boolean action(Event e,Object obj)
{
String buttonText= new String((String) e.arg);
if(buttonText.equals("Send"))
{
if(list_Chat1.countItems()==1)
{
ts1.appendText("-- You are alone in this chat room --" + "\n");
list_Chat1.select(0);
ts.setText("");
return true;
}
else if(list_Chat1.countItems()>1)
{
if(ts.getText()!=null)
{
String xx = new String(ts.getText());
if(xx.length() > 55)
{
ts1.appendText("-- Do not type in long messages --" + "\n");
ts1.appendText("-- TRY AGAIN... --" + "\n");
ts.setText("");
return true;
}
if(list_Chat1.getSelectedItem().equals(client.UserName1))
{
ts1.appendText("-- You can not send message to yourself --"+"\n");
ts.setText("");
return true;
}
int z=0;
String sendto= null;
if(list_Chat1.getSelectedItem().endsWith("**"))
{
z=list_Chat1.getSelectedItem().indexOf("**");
sendto=list_Chat1.getSelectedItem().substring(0,z);
}
else
{
sendto=list_Chat1.getSelectedItem();
}
if(sendto!=null)
{
String message=new String(ts.getText());
String lastmesg="$"+":"+sendto+":"+message;
client.cp.sendData(lastmesg);
ts1.appendText(" ("+client.UserName1+") "+message+" to ("+sendto+") "+"\n");
ts.setText(" ");
}
}
return true;
}
}
if(buttonText.equals("Cancel"))
{
ts1.setText("");
this.dispose();
client.show();
return true;
}
if(e.id == Event.WINDOW_DESTROY)
{
this.dispose();
return true;
}
if(e.key == 0)
{
if(list_Chat1.countItems()==1)
{
ts1.appendText("-- You are alone in this chat room --" + "\n");
list_Chat1.select(0);
ts.setText("");
return true;
}
else if(list_Chat1.countItems()>1)
{
if(ts.getText()!=null)
{
String xx = new String(ts.getText());
if(xx.length() > 55)
{
ts1.appendText("-- Do not type in long messages --" + "\n");
ts1.appendText("-- TRY AGAIN... --" + "\n");
ts.setText("");
return true;
}
if(list_Chat1.getSelectedItem().equals(client.UserName1))
{
ts1.appendText("-- You can not send message to yourself --"+"\n");
ts.setText("");
return true;
}
int z=0;
String sendto= null;
if(list_Chat1.getSelectedItem().endsWith("**"))
{
z=list_Chat1.getSelectedItem().indexOf("**");
sendto=list_Chat1.getSelectedItem().substring(0,z);
}
else
{
sendto=list_Chat1.getSelectedItem();
}
if(sendto!=null)
{
String message=new String(ts.getText());
String lastmesg="$"+":"+sendto+":"+message;
client.cp.sendData(lastmesg);
ts1.appendText(" ("+client.UserName1+") "+message+" to ("+sendto+") "+"\n");
ts.setText(" ");
}
}
return true;
}
}
return false;
}
}
Back to starting of page
 
 
 
class RefreshUsers extends Thread
{
ConfDraw client;
public RefreshUsers(ConfDraw client)
{
this.client = client;
}
public void run()
{
while(true)
{
/** sending a U: to get the users online after every 15 seconds **/
client.cp.sendData("U" + ":");
try
{
this.sleep(15000);
}
catch(InterruptedException e)
{
}
}
}
}
Back to starting of page
 
 
 
class PingChatServer extends Thread
{
ConfDraw client;
public PingChatServer(ConfDraw client)
{
this.client = client;
}
public void run()
{
while(true)
{
client.cp.sendData("P");
try
{
this.sleep(15000);
}
catch(InterruptedException e)
{
}
}
}
}