Commit 5ed52287 authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch15] 2nd Ed Simple Chat Client

parent 1c6c2639
Loading
Loading
Loading
Loading
+56 −0
Changes for src/main/java/ch15/SimpleChatClientA.java: 56 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch15;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;

public class SimpleChatClientA {
  JTextField outgoing;
  PrintWriter writer;
  Socket sock;

  public void go() {
    JFrame frame = new JFrame("Ludicrously Simple Chat Client");
    JPanel mainPanel = new JPanel();
    outgoing = new JTextField(20);
    JButton sendButton = new JButton("Send");
    sendButton.addActionListener(new SendButtonListener());
    mainPanel.add(outgoing);
    mainPanel.add(sendButton);
    frame.getContentPane().add(BorderLayout.CENTER, mainPanel);
    setUpNetworking();
    frame.setSize(400, 500);
    frame.setVisible(true);
  } // close go

  private void setUpNetworking() {
    try {
      sock = new Socket("127.0.0.1", 5000);
      writer = new PrintWriter(sock.getOutputStream());
      System.out.println("networking established");
    } catch (IOException ex) {
      ex.printStackTrace();
    }
  } // close setUpNetworking

  public class SendButtonListener implements ActionListener {
    public void actionPerformed(ActionEvent ev) {
      try {
        writer.println(outgoing.getText());
        writer.flush();
      } catch (Exception ex) {
        ex.printStackTrace();
      }
      outgoing.setText("");
      outgoing.requestFocus();
    }
  } // close SendButtonListener inner class

  public static void main(String[] args) {
    new SimpleChatClientA().go();
  }
} // close outer class
 No newline at end of file