Foros del Web » Programación para mayores de 30 ;) » Java »

mostrar datos que vienen de un socket en un jtable

Estas en el tema de mostrar datos que vienen de un socket en un jtable en el foro de Java en Foros del Web. que tal amigos pues verán recibo los datos que envia un cliente de la forma s=flujo.readUTF(); este string viene con el formato celerio, martinez, jose ...
  #1 (permalink)  
Antiguo 02/06/2012, 22:04
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 15 años, 6 meses
Puntos: 0
mostrar datos que vienen de un socket en un jtable

que tal amigos pues verán recibo los datos que envia un cliente de la forma

s=flujo.readUTF();

este string viene con el formato

celerio, martinez, jose luis, H, Aguascalientes, 01-Enero-1989, CEML890101HASLRS0

Ahora estos datos quiero pintarlos en un jtable y lo intento de la siguiente forma

Código PHP:
 public void separaDatos ( )
    {
       
datos s.split(","); 
        for(
int k=0;k<datos.length;k++)
            
fila.addElement(datos[k]);
      
renglones.addElement(fila);
      
table=new JTable(renglones,columnas);
     } 
Pero no los pinta en la tabla, datos es un arreglo de Strings de 7 elementos declarado en el constructor,fila y renglones son Vectores que vienen de otra clase donde dibujo toda la interfaz.Alguna ayuda o sugerencia?
  #2 (permalink)  
Antiguo 03/06/2012, 01:13
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 12 años, 3 meses
Puntos: 34
Respuesta: mostrar datos que vienen de un socket en un jtable

Si publicas un poco mas de codigo seria mas facil ayudarte.
  #3 (permalink)  
Antiguo 03/06/2012, 12:49
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 15 años, 6 meses
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();
}

  #4 (permalink)  
Antiguo 04/06/2012, 21:25
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: mostrar datos que vienen de un socket en un jtable

Bueno, no he mirado mucho tu código, tal vez me equivoque pero mas vale una opinión que estar de mirón.....

Puedes hacer que el flujo que te llega, castearlo a String, o preguntar si es un String con un instanceOf, para ver que realemente llegue algo......

Veo que en el separa datos haces un fila.addElement....pero en si cuando creas tu JTable le pasas renglones y columnas, pero no la fila.... también puedes tratar de usar un TableModel.... en fin es lo que veo....
__________________
De nada, hay te encargo +1...

Etiquetas: clase, jtable, socket, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:23.