//First Class package interfacesCliente; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.SwingUtilities; import conexionCliente.ConexionClienteConsulta; import javax.swing.JTextField; import java.awt.Rectangle; import javax.swing.JLabel; import java.awt.Dimension; public class InterfazConsulta extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private ConexionClienteConsulta consulta=null; private String tarjeta=null; private JLabel jlbltarjeta = null; private JTextField jtxtcajita = null; public InterfazConsulta(String tarjeta) { super(); this.tarjeta=tarjeta; initialize(); consulta= new ConexionClienteConsulta(this,"usuario","localhost","2"+tarjeta); consulta.iniciarConexion(); System.out.println("HOla"); } private void initialize() { this.setSize(378, 309); this.setContentPane(getJContentPane()); this.setTitle("CONSULTAS ON LINE"); this.setVisible(true); this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); } private JPanel getJContentPane() { if (jContentPane == null) { jlbltarjeta = new JLabel(); jlbltarjeta.setBounds(new Rectangle(15, 30, 190, 25)); jlbltarjeta.setText("Tarjeta:"); } return jContentPane; } private JTextField getJtxtcajita() { if (jtxtcajita == null) { jtxtcajita = new JTextField(); jtxtcajita.setBounds(new Rectangle(229, 70, 113, 22)); } return jtxtcajita; } public void actionPerformed(ActionEvent e) { } public void escribir(String mensaje) { SwingUtilities.invokeLater(new Escritura(mensaje)); this.repaint(); System.out.println(mensaje); } class Escritura implements Runnable { private final String mensaje; public Escritura(String mensaje) { this.mensaje=mensaje; } public void run() { jtxtcajita.setText(mensaje); } } } //Second Class package conexionCliente; import interfacesCliente.InterfazConsulta; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; public class ConexionClienteConsulta { private Socket conexion=null; private DataInputStream entrada=null; private DataOutputStream salida=null; private static final int PUERTO=2222; private InterfazConsulta interfaz=null; private String nombreCliente=null; private String nombreHost=null; private String codTarjeta=null; public ConexionClienteConsulta(InterfazConsulta interfaz, String nombreCliente,String nombreHost,String codTarjeta) { this.interfaz=interfaz; this.nombreCliente=nombreCliente; this.nombreHost=nombreHost; this.codTarjeta=codTarjeta; } public void iniciarConexion() { try { conectar(); crearFlujos(); comunicar(); cerrarConexion(); } catch (IOException e) { e.printStackTrace(); } } private void conectar() { try { conexion = new Socket( nombreHost , PUERTO ); } catch (UnknownHostException e) { e.printStackTrace(); System.out.println("Servidor inexistente ..."); } catch (IOException e) { e.printStackTrace(); } } private void cerrarConexion() { try { entrada.close(); salida.close(); conexion.close(); } catch (IOException e) { e.printStackTrace(); } } private void comunicar() { String mensaje=null; try { salida.writeUTF("Comunicación Establecida"); enviarMensaje(codTarjeta); do { try { mensaje=entrada.readUTF(); interfaz.escribir(mensaje); System.out.println("Escribiendo "+mensaje); interfaz.repaint(); } catch(IOException e) { mensaje="terminar"; interfaz.escribir(nombreCliente+" Se Ha Desconectado"); } } while(!mensaje.equals("terminar")); } catch (IOException e) { e.printStackTrace(); } } private void crearFlujos()throws IOException { entrada = new DataInputStream( conexion.getInputStream() ); salida = new DataOutputStream( conexion.getOutputStream()); } public void enviarMensaje(String mensaje) { try { salida.writeUTF(mensaje); } catch (IOException e) { e.printStackTrace(); } } }