Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/06/2012, 12:49
puzzlemaniaco
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: mostrar datos que vienen de un socket en un jtable

Esta seria la clase que recibe el mensaje enviado por un cliente
Código PHP:
/**
 * Write a description of class MensajeSockets here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.*;
public class 
ServidorCurp 
{
    private  
JTextField areaEmisor,areaNombre;
    private  
JTextArea observaciones;
    static final 
int PUERTO=5000;
    private static 
ServerSocket skServidor;
    private static 
Socket skCliente;
    private static 
InputStream aux;
    private static 
DataInputStream flujo;
    private static 
String s;
    private static 
String[] datos;
    
Vector renglones,fila,columnas;
    
VistaServidor gui;
    
JTable table;
    
JButton salir;
      
/**
     * Constructor for objects of class MensajeSockets
     */
    
public ServidorCurp(JButton salir,VistaServidor gui,Vector fila,Vector renglones,Vector columnas)
    {
        
this.observaciones=observaciones;
        
thisareaEmisorareaEmisor;
        
this.areaNombre=areaNombre;
        
this.gui=gui;
        
this.fila=fila;
        
this.renglones=renglones;
        
this.columnas=columnas;
        
this.salir=salir;
        
datos=new String[7];
        
salir.addActionListener(new ActionListener()
        {
          public 
void actionPerformed(ActionEvent e)
          {
            
System.exit(0);
          }
        });
        
conectaSocket();
    }
    public 
void conectaSocket()
          {
            try
            {
              
skServidor = new ServerSocketPUERTO );
              try
              {
                  
skCliente skServidor.accept(); 
                  
aux skCliente.getInputStream();
                  
flujo = new DataInputStreamaux );
                  while(
true)
                  {
                    try
                    {
                      
s=flujo.readUTF();
                      
                      
separaDatos();
                    }
                    catch(
IOException e)
                    {
                      try
                      {
                        
skCliente.close();
                        
flujo.close();
                      }
                      catch(
IOException es)
                      {
                      }
                    }
                  }
              }
           catch( 
Exception e 
           {
             
System.out.println"conexion cerrada por el server al escribir"+e.getMessage() );
           }
      }
      catch( 
Exception e 
      {
        
System.out.println"conexion cerrada por el server "+e.getMessage() );
      }
    
          
        }
    public 
void separaDatos ( )
    {
        
datos s.split(","); 
        for(
int k=0;k<datos.length;k++)
        {
          
fila.addElement(datos[k]);
           
        }
             
System.out.println(datos[6]);
      
renglones.addElement(fila);
      
table=new JTable(renglones,columnas);
     
    }

Y esta clase proporciona la interfaz a la clase de arriba
Código PHP:

/**
 * @(#)VistaServidor.java
 *Clase que provee la interfaz del servidor para la clase de sockets
 * @author Salinas Ruiz Jose luis
 * @version 1.00 2012/05/22
 */
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class 
VistaServidor {
private 
JFrame frame;
private 
JPanel panel;
private 
JButton salir;
  
Vector columnas,renglones,fila;
JTable table;
JScrollPane scroll;
ServidorCurp manejaEventos;
/**
     * Constructor.
 */
VistaServidor() 
{
    
frame=new JFrame("Servidor");
    
panel=new JPanel();
    
salir=new JButton("Salir");
    
columnas = new Vector();
    
renglones = new Vector();
    
fila=new Vector();
    
String [] arre={"Apellido Paterno","Apellido Materno","Nombre","Sexo","Ciudad","Fecha de Nacimiento","CURP"};
    for(
int i=0;i<arre.length;i++)
      
columnas.addElement(arre[i]);
    
table=new JTable(renglones,columnas);
    
scroll =new JScrollPane(table);
    
panel.add(salir);
    
distribuye(305,200,90,30,salir);
    
panel.setLayout(null);
    
/**Establece el tamaño del frame  setSize (ancho,alto)*/
    
frame.setSize(790310);
    
/**centra la pantalla*/
    
frame.add(panel);
    
frame.setLocationRelativeTo(null);
    
frame.setVisible(true);
    
frame.setResizable(false);
    
frame.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE );
    
panel.add(scroll);
      
distribuye(10,10,690,80,scroll);
    
manejaEventos=new ServidorCurp(salir,this,fila,renglones,columnas);    
    
//salir.addActionListener(manejaEventos);
        
 
}
 public 
void distribuye(int xint y,int anchoint alto,Component componente )
 {
  
componente.setBounds(x,y,ancho,alto);
 }
 public static 
void main(String[] args) {
     new 
VistaServidor();
}