Friday, March 8, 2013

SimpleChatClient1

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

import javax.swing.*;


public class SimpleChatClient1 {
    JTextArea incoming;
    JTextField outgoing;
    BufferedReader reader;
    PrintWriter writer;
    Socket sock;

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SimpleChatClient1 client = new SimpleChatClient1();
        client.go();

    }
    public void go(){
        JFrame frame = new JFrame("Simple chat client");
        JPanel mainPanel = new JPanel();
        incoming = new JTextArea(15,50);
        incoming.setLineWrap(true);
        incoming.setWrapStyleWord(true);
        incoming.setEditable(false);
       
        JScrollPane qScroller = new JScrollPane(incoming);
        qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
       
        outgoing = new JTextField(20);
        JButton sendButton = new JButton("Send");
        sendButton.addActionListener(new SendButtonListener());
       
        mainPanel.add(qScroller);
        mainPanel.add(outgoing);
        mainPanel.add(sendButton);
       
        setUpNetworking();
       
        Thread readerThread = new Thread(new IncomingReader());
        readerThread.start();
       
        frame.getContentPane().add(mainPanel);
        frame.setSize(400, 500);
        frame.setVisible(true);
    }
    private void setUpNetworking(){
        try {
            sock = new Socket("127.0.0.1",5000);
            InputStreamReader streamReader = new InputStreamReader(sock.getInputStream());
            reader = new BufferedReader(streamReader);
            writer = new PrintWriter(sock.getOutputStream());
            System.out.println("Networking Eastablished");
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public class SendButtonListener implements ActionListener{

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            try{
            writer.println(outgoing.getText());
            writer.flush();
            }
            catch(Exception ex){
                ex.printStackTrace();
            }
            outgoing.setText("");
            outgoing.requestFocus();
        }
       
    }
    public class IncomingReader implements Runnable{

        @Override
        public void run() {
            // TODO Auto-generated method stub
            String message;
            try{
                while((message=reader.readLine())!=null){
                    System.out.println("read "+message);
                    incoming.append("message");
                    incoming.append(message+"\n");
                }
               
            }
            catch(Exception ex){
                ex.printStackTrace();
            }
           
        }
       
    }

}

No comments:

Post a Comment