Advertisement
Guest User

Untitled

a guest
Jun 7th, 2012
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.12 KB | None | 0 0
  1. package com.gudenau.ChatCleint;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.event.WindowEvent;
  5. import java.awt.event.WindowListener;
  6. import java.io.BufferedReader;
  7. import java.io.IOException;
  8. import java.io.InputStreamReader;
  9. import java.io.PrintWriter;
  10. import java.net.Socket;
  11. import java.net.UnknownHostException;
  12.  
  13. import javax.swing.JFrame;
  14.  
  15. public class Start implements WindowListener {
  16.  
  17.     private MainPanel panel;
  18.     private JFrame frame;
  19.    
  20.     private Socket socket;
  21.     private PrintWriter out;
  22.     private BufferedReader in;
  23.  
  24.     private Messager messager;
  25.  
  26.     public Commander commander;
  27.    
  28.     public void main(String[] args, boolean ignore) {
  29.        
  30.         commander = new Commander(this);
  31.        
  32.         if (args.length < 2) {
  33.             System.out.println("Must suply ip and port!");
  34.             System.exit(-1);
  35.         }
  36.  
  37.         try {
  38.             socket = new Socket("gudenau.no-ip.org", 45678);
  39.  
  40.             out = new PrintWriter(socket.getOutputStream(), true);
  41.             in = new BufferedReader(new InputStreamReader(
  42.                     socket.getInputStream()));
  43.         } catch (NumberFormatException e) {
  44.             e.printStackTrace();
  45.             System.exit(-1);
  46.         } catch (UnknownHostException e) {
  47.             e.printStackTrace();
  48.             System.exit(-2);
  49.         } catch (IOException e) {
  50.             e.printStackTrace();
  51.             System.exit(-3);
  52.         }
  53.  
  54.         messager = new Messager(in, socket, this, out);
  55.         messager.setDaemon(true);
  56.         messager.start();
  57.  
  58.         frame = new JFrame("gudenau Chat     " + args[0] + " on port " + args[1]);
  59.         frame.setLayout(new BorderLayout());
  60.         frame.setSize(600, 600);
  61.  
  62.         // disable the close button
  63.         frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
  64.         // create custom close operation
  65.         frame.addWindowListener(this);
  66.  
  67.         panel = new MainPanel(this);
  68.  
  69.         panel.addMessage("Welcome to guenau chat!\nPlease say you name first.");
  70.  
  71.         frame.add(panel, BorderLayout.CENTER);
  72.         frame.setVisible(true);
  73.  
  74.     }
  75.  
  76.     public static void main(String[] args) {
  77.  
  78.         Start start = new Start();
  79.         start.main(args, false);
  80.  
  81.     }
  82.  
  83.     public void sendMessage(String message) {
  84.  
  85.         if (message.startsWith("/")) {
  86.             message.replaceFirst("/", "");
  87.             commander.handleCommand(message);
  88.         } else {
  89.  
  90.             messager.sendMessage(message);
  91.         }
  92.     }
  93.  
  94.     public void windowClosing(WindowEvent e) {
  95.         quit();
  96.     }
  97.  
  98.     public void quit(){
  99.        
  100.         frame.setVisible(false);
  101.         frame.removeAll();
  102.        
  103.         out.close();
  104.         try {
  105.             in.close();
  106.             socket.close();
  107.         } catch (IOException e1) {
  108.         }
  109.  
  110.         System.exit(0);
  111.     }
  112.    
  113.     @Override
  114.     public void windowActivated(WindowEvent arg0) {
  115.         // TODO Auto-generated method stub
  116.  
  117.     }
  118.  
  119.     @Override
  120.     public void windowClosed(WindowEvent arg0) {
  121.         // TODO Auto-generated method stub
  122.  
  123.     }
  124.  
  125.     @Override
  126.     public void windowDeactivated(WindowEvent arg0) {
  127.         // TODO Auto-generated method stub
  128.  
  129.     }
  130.  
  131.     @Override
  132.     public void windowDeiconified(WindowEvent arg0) {
  133.         // TODO Auto-generated method stub
  134.  
  135.     }
  136.  
  137.     @Override
  138.     public void windowIconified(WindowEvent arg0) {
  139.         // TODO Auto-generated method stub
  140.  
  141.     }
  142.  
  143.     @Override
  144.     public void windowOpened(WindowEvent arg0) {
  145.         // TODO Auto-generated method stub
  146.  
  147.     }
  148.  
  149.     public void addMessage(String message) {
  150.         panel.addMessage(message);
  151.     }
  152.  
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement