7월23일 JAVA(채팅)

2010. 7. 23. 15:152010년/7월


import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;

class chatt
{
 static Chatwindows window;
 
 public static void main(String args[])
 {
  
  window = new Chatwindows ("채팅");
  window.setBounds(50,50,800,600);
  
  window.show();
 
 }
 
 
 
}
class Chatwindows extends Frame implements ActionListener
{

 String sname;
 Label NTitleLabel,PstsLabel;
 Panel NTitle;
 Panel CField;
 TextArea CFieldText;
 TextField chat;
 Panel EIDlist;
 TextArea EIDlistText;
 Panel SState;
 
 Panel SStatenorth;
 Panel SStatesouth;
 changeidDlg DlgID;
 
 Choice colorChoice,IDchoice;
 
 BorderLayout chBorder,stateBorder;
 Button sendMessage,changeID,bexit,cls,help,southexit;
 public Chatwindows(String aname)
 {
  super("채팅프로그램 V.10"); 
  String[] systemColor = {"RED", "GREEN", "BLUE", "ORANGE", "YELLOW"};
  String[] choiceID = {"귓속말 선택"};
  
  colorChoice = new Choice();
  IDchoice = new Choice();
  for( int i=0;i<systemColor.length;++i)
  {
   colorChoice.add(systemColor[i]);
  }
  for( int i=0;i<choiceID.length;++i)
  {
   IDchoice.add(choiceID[i]);
  }
  
  sname=aname; 
  NTitle = new Panel();
  CField = new Panel();
  EIDlist = new Panel();
  SState = new Panel();
  
  NTitle.setBackground(Color.yellow);
  CField .setBackground(Color.pink);
  EIDlist.setBackground(Color.green);
  SState.setBackground(Color.blue);
  
  NTitleLabel = new Label("<자바 채팅방>입니다..   ♡어서오세요♡     [욕설 금지]      재미나게 놀다가세요");
  NTitle.add(NTitleLabel);


  
  CFieldText = new TextArea("",29,82,TextArea.SCROLLBARS_NONE);
  CFieldText.setEditable(false);
  CFieldText.setBackground(Color.pink);
  CField.add(CFieldText);
  
  EIDlistText = new TextArea("",29,22,TextArea.SCROLLBARS_NONE);
  EIDlistText.setEditable(false);
  EIDlistText.setBackground(Color.green);
  EIDlist.add(EIDlistText);
  
  
  stateBorder = new BorderLayout();
  SStatenorth = new Panel();
  SStatesouth = new Panel();
  SState.setLayout(stateBorder);

  SState.add(SStatenorth,BorderLayout.NORTH);
  SState.add(SStatesouth,BorderLayout.SOUTH);
  
  PstsLabel = new Label("색상 선택");
  sendMessage = new Button("쪽지보내기");
  changeID = new Button("대화명 변경");
   bexit = new Button("채팅 종료");
  SStatenorth.setLayout(new FlowLayout());
  
  SStatenorth.add(PstsLabel);
  SStatenorth.add(colorChoice);
  SStatenorth.add(sendMessage);
  SStatenorth.add(changeID); 
  SStatenorth.add(bexit);
 
  cls = new Button("지우기");
  help = new Button("도움말");
  southexit = new Button("나가기");
  chat = new TextField(50);
  SStatesouth.setLayout(new FlowLayout());
  SStatesouth.add(IDchoice);
  SStatesouth.add(chat);
  SStatesouth.add(cls);
  SStatesouth.add(help);
  SStatesouth.add(southexit);
 
  
  this.addWindowListener(new WindowHandler());
  chBorder = new BorderLayout();
  this.setLayout(chBorder);
  this.add(NTitle,BorderLayout.NORTH);
  this.add(CField,BorderLayout.CENTER);
  this.add(EIDlist,BorderLayout.EAST);
  this.add(SState,BorderLayout.SOUTH);
  changeID.addActionListener (this);
  sendMessage.addActionListener (this);
  southexit.addActionListener(this);
 }
 public void actionPerformed (ActionEvent e)
 {
  if(e.getSource()==changeID)
  {
   DlgID = new changeidDlg(this);
   DlgID.setBounds(850,100,300,100);
   DlgID.show();
  }
  else if(e.getSource()==sendMessage)
  {
   sendmessage sme = new sendmessage(this);
   sme.setBounds(850,300,300,200);
   sme.show();
  }
  else if(e.getSource()==southexit)
  {
   System.exit (0);
  }
 }


}

class changeidDlg extends Dialog implements ActionListener
{
 Button OKBut = new Button("확인");
 Button XBut = new Button("취소");
 Label laIDname = new Label("대화명  ");
 TextField IDname = new TextField("",24);
 Chatwindows bwindow;
 
 public changeidDlg(Chatwindows parents)
 { 
   super (parents, "대화명", true);
  
 // this.addWindowListener(new WindowHandler());
  this.setLayout(new FlowLayout()); 
  this.add(laIDname);
  this.add(IDname);
  this.add(OKBut);
  this.add(XBut);
  XBut.addActionListener (this);
  OKBut.addActionListener (this);
  
 }
 public void actionPerformed (ActionEvent e)
 {
  if(e.getSource()==XBut)
  {
   this.setVisible(false);
  }
  else if(e.getSource()==OKBut)
  {
   this.setVisible(false);
  }
 }
 
 
}
class sendmessage extends Dialog implements ActionListener
{
 Button OKBut = new Button("보내기");
 Button XBut = new Button("취소");
 Label laIDname = new Label("대화명  ");
 Label lamessage = new Label("보낼내용");
 TextField IDname = new TextField("",24);
 TextField Txmessage = new TextField("",24);
 Chatwindows bwindow;
 
 public sendmessage(Chatwindows parents)
 { 
   super (parents, "대화명", true);
  
 // this.addWindowListener(new WindowHandler());
  this.setLayout(new FlowLayout()); 
  this.add(laIDname);
  this.add(IDname);
  this.add(lamessage);
  this.add(Txmessage);
  this.add(OKBut);
  this.add(XBut);
  XBut.addActionListener (this);
  OKBut.addActionListener (this);
  
 }
 public void actionPerformed (ActionEvent e)
 {
  if(e.getSource()==XBut)
  {
   this.setVisible(false);
  }
  else if(e.getSource()==OKBut)
  {
   this.setVisible(false);
  }
 }
 
 
}


class WindowHandler extends WindowAdapter
{
 public void windowClosing(WindowEvent e)
 {
   if (e.getID() == WindowEvent.WINDOW_CLOSING) {
                 //setVisible (false);
                 System.exit (0);
             }
 }
}