Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Main.java

By: a guest on Jun 27th, 2012  |  syntax: Java  |  size: 4.25 KB  |  views: 5  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package main;
  2. import java.io.*;
  3. import java.net.*;
  4. //import java.util.*;
  5. import javax.swing.*;
  6. import java.awt.*;
  7. import java.awt.event.*;
  8.  
  9. public class Main {
  10.  
  11.         JTextArea incoming;
  12.         JTextField outgoing;
  13.         JTextField charName;
  14.         BufferedReader reader;
  15.         PrintWriter writer;
  16.         Socket sock;
  17. //      JComboBox rpMode;
  18.        
  19.         String connectionIP = "localhost";
  20.         int connectionPort = 5000;
  21.        
  22.         public static void main(String[] args) {
  23.                 Main client = new Main();
  24.                 client.go();
  25.         } // end main
  26.        
  27.         public void go() {
  28.                
  29.                 JFrame frame = new JFrame("Simplex RP Client V1.0 Beta");
  30.                 JPanel mainPanel = new JPanel();
  31.                 incoming = new JTextArea(15,50);
  32.                 incoming.setLineWrap(true);
  33.                 incoming.setWrapStyleWord(true);
  34.                 incoming.setEditable(false);
  35.                 JScrollPane qScroller = new JScrollPane(incoming);
  36.                 qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  37.                 qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
  38.                 outgoing = new JTextField(50);
  39. //              rpMode = new JComboBox("OOC", "IC", "IT", "ME");
  40.                 charName = new JTextField(30);
  41.                 charName.setText("Enter a character name here. (Ex:Ryan 'Lulz' Cleary)");
  42.                 JButton sendButton = new JButton("Send");
  43.                 sendButton.addActionListener(new SendButtonListener());
  44.                 mainPanel.add(qScroller);
  45.                 mainPanel.add(outgoing);
  46.                 mainPanel.add(sendButton);
  47.                 mainPanel.add(BorderLayout.SOUTH, charName);
  48.                 setUpNetworking();
  49.                 Thread readerThread = new Thread(new IncomingReader());
  50.                 readerThread.start();
  51.                 frame.getContentPane().add(BorderLayout.CENTER, mainPanel);
  52.                 frame.setSize(577,375);
  53.                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  54.                 frame.setVisible(true);
  55.         } // close go
  56.         private void setUpNetworking() {
  57.                 try {
  58.                         sock = new Socket(connectionIP, connectionPort);
  59.                         InputStreamReader streamReader = new InputStreamReader(sock.getInputStream());
  60.                         reader = new BufferedReader(streamReader);
  61.                         writer = new PrintWriter(sock.getOutputStream());
  62.                         System.out.println("Networking Established");
  63.                 } catch(IOException ex) {System.out.println("Failed to connect to server. Error below."); ex.printStackTrace(); incoming.append("Something went wrong between the connection of you and the server. Due to how Sockets function, you will need to restart the application. A more detailed explanation of the error is visible in your console."); outgoing.setEnabled(false); outgoing.setText("Sending messages has been disabled due to an error.");}
  64.         } // close setup networking
  65.        
  66.         public class SendButtonListener implements ActionListener {
  67.                 String rpModeSelection = "IC";
  68.                 public void actionPerformed(ActionEvent ev) {
  69.                         if (outgoing.getText() == "SET:OOC") {
  70.                                 rpModeSelection = "OOC";
  71.                                 incoming.append("RP Mode set to OOC");
  72.                         } else if (outgoing.getText() == "SET:IC"){
  73.                                 rpModeSelection = "IC";
  74.                                 incoming.append("RP Mode set to IC");
  75.                         } else if (outgoing.getText() == "SET:IT") {
  76.                                 rpModeSelection = "IT";
  77.                                 incoming.append("RP Mode set to IT Statement");
  78.                         } else if (outgoing.getText() == "SET:ME") {
  79.                                 rpModeSelection = "ME";
  80.                         } else
  81.                                 //if (!outgoing.getText().equals("SET:OOC") || !outgoing.getText().equals("SET:IC") || !outgoing.getText().equals("SET:ME") || !outgoing.getText().equals("SET:IT"))
  82.                         {
  83.                                 try {
  84.                                 if (rpModeSelection == "OOC") {
  85.                                 writer.println("[OOC] " + charName.getText() + ": "+ outgoing.getText());
  86.                                 writer.flush();
  87.                                 } else if (rpModeSelection == "IC") {
  88.                                         writer.println(charName.getText() + " says '"+ outgoing.getText() + "'");
  89.                                         writer.flush();
  90.                                 } else if (rpModeSelection == "ME") {
  91.                                         writer.println(charName.getText() + " " + outgoing.getText());
  92.                                         writer.flush();
  93.                                 } else if (rpModeSelection == "IT") {
  94.                                         writer.println("**" + outgoing.getText());
  95.                                         writer.flush();
  96.                                 }
  97.                         } catch (Exception ex) {ex.printStackTrace();}
  98.                         outgoing.setText("");
  99.                         outgoing.requestFocus();
  100.                 } }
  101.         } // close inner class
  102.        
  103.         public class IncomingReader implements Runnable {
  104.                 public void run() {
  105.                         String message;
  106.                         try {
  107.                                
  108.                                 while ((message = reader.readLine()) != null) {
  109.                                         System.out.println("read " + message);
  110.                                         incoming.append(message + "\n");
  111.                                 }// close while
  112.                                 } catch (Exception ex) {ex.printStackTrace();}
  113.                         }
  114.                 }
  115.         }
clone this paste RAW Paste Data