La clase inicioCliente
Código Java:
Ver original
import com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary; import java.util.ArrayList; import java.util.Vector; import javax.swing.JOptionPane; /** * * @author Javier */ public class InicioCliente { /** * @param args */ // TODO Auto-generated method stub //Declaro la ip y el puerto a conectar //Creo una ventana emergente para pedir el nick, despues se instancia //la clase cliente y se le pasa la ip, el puerto y el nick Cliente charla = new Cliente (ipserver,puerto,nick); } }
La clase Cliente
Código Java:
Ver original
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; private static final long serialVersionUID = 1L; //Parte grafica, declaro los elementos a usar //Declaramos ip puerto y nick String ipserver; String puerto; String nick; //Declaramos el Socket cliente y los canales de escritura y lectura //--- //Creamos el constructor de la clase this.ipserver = ipserver; this.puerto = puerto; this.nick = nick; //Creamos la interfaz crearInterfaz(); try { //Se instancian el socket y los buffer canal_w.println(nick); while(true){ //Si se escribe FIN se termina el programa (Ejercicio 1 de toda esta practica) if(linea.equals("FIN")){ }else{ //Se añaden los mensajes al textArea JTAREA.append(linea + "\n"); } } // TODO Auto-generated catch block e.printStackTrace(); // TODO Auto-generated catch block e.printStackTrace(); // TODO Auto-generated catch block e.printStackTrace(); } }//Fin constructor private void crearInterfaz(){ //Ventana principal this.addWindowListener(this); this.setLayout(null); this.setSize(450, 450); this.setResizable(false);//Se establece el tamaño de la ventana this.setTitle("Chat - " + this.nick); //TextArea JTAREA.setBounds(10, 10, 370, 370); //Se da un tamaño JTAREA.setEditable(false); //Se establece que no se puede editar this.add(JTAREA); //Panel con scroll donde esta el textArea donde aparecen los mensajes scrollpane1.setBounds(10, 10, 370, 370);//Se da un tamaño scrollpane1.getVerticalScrollBar().setValue(scrollpane1.getVerticalScrollBar().getMaximum()); this.add(scrollpane1); //Caja de texto donde escribimos el mensaje JTEXTO.setBounds(10, 390, 260, 20); //Se da un tamaño this.add(JTEXTO); //Boton enviar JBOTON.setBounds(280, 390, 100, 20); //Se da un tamaño JBOTON.setText("Enviar"); //Se establece el texto del boton JBOTON.addActionListener(this); this.add(JBOTON); this.setVisible(true); } @Override // TODO Auto-generated method stub } @Override // TODO Auto-generated method stub } @Override // TODO Auto-generated method stub canal_w.println("FIN"); } @Override // TODO Auto-generated method stub } @Override // TODO Auto-generated method stub } @Override // TODO Auto-generated method stub } @Override // TODO Auto-generated method stub } @Override // TODO Auto-generated method stub canal_w.println(JTEXTO.getText()); JTEXTO.setText(""); } } }