Foro de elhacker.net

Programación => Java => Mensaje iniciado por: juni85 en 17 Octubre 2011, 12:24 pm



Título: [solucionado]Ayuda a la hora de introducir datos en un jtable
Publicado por: juni85 en 17 Octubre 2011, 12:24 pm
me gustaria mostrar un string con los siguientes datos:
1;2;3;4;5;6;7
10;11;12;13;14;15;16;17
20;21;22;23;24;25;26;27
30;31;32;33;34
//El String qu contiene los datos es la variabledatosGuardados
// cada " ; " equivale a un cuadro del jtable
//tengan en cuanta que no siempre mostraré el mismo número de filas


Código
  1.  
  2. //lo que llevo realizado
  3.  
  4.  
  5.  public f_mostrarAvisos()
  6.    {
  7.        initComponents();
  8.  
  9.        String columNames[]={"Código","Nombre","Dirección","Teléfono","Máquina", "NºSerie", "Nº Parte"};
  10.        modeloTabla.setColumnIdentifiers(columNames);
  11.        //jTable1.setModel(modeloTabla);
  12.  
  13.        String datos = new String();
  14.        datos = prin.datosGuardados;
  15.        String [] array = datos.split(";");
  16.  
  17.            for (int i = 0; i < array.length; i++)
  18.            {
  19.                 contarPalabras = contarPalabras + 1;
  20.  
  21.            }
  22.        totalFilas = contarPalabras / 7;
  23.        //por si faltan datos
  24.        totalFilas = totalFilas + 1 ;
  25.  
  26.  
  27.  
  28.        String datos2 = new String();
  29.        datos2 = prin.datosGuardados;
  30.        String [] array1 = datos2.split(";");
  31.        Object [] fila = new Object [totalFilas];
  32.  
  33.      //creación de las filas
  34.  
  35.           for (int f = 0; f < totalFilas; f++)
  36.            {                
  37.                     modeloTabla.addRow(fila);
  38.            }
  39.  
  40.        jTable1.setModel(modeloTabla);
  41.    }
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  


Título: Re: Ayuda a la hora de introducir datos en un jtable
Publicado por: adastra en 19 Octubre 2011, 10:02 am
Supongo que lo que preguntas es como partir dicho String en separado por ";" en cada celda, lo primero que puedes hacer, es utilizar un StringTokenizer delimitando por ";" y cada token extraido establecerlo en un array de objetos que corresponderan a cada fila de la tabla... luego, deberas consultar cual es el array con mayor longitud y dicha longitud, será el número de columnas maximo de la tabla, es decir el for interno de las celdas se recorrerá hasta dicho limite.

No sé si eso lo que realmente querias preguntar, pero si tienes alguna otra duda, posteala.
Un Saludo.


Título: introducir datos de un archivo enun jtable mediante un archivo [solucionado]
Publicado por: juni85 en 28 Octubre 2011, 11:03 am
Gracias por decirme lo de String tokenizer

Lo pongo como ejemplo
Código
  1.      int i = 0;
  2.      int totalFilas = 0;
  3.      int contarPalabras = 0;
  4.      int a = 0 ;
  5.      public String lecturaFichero;
  6.  
  7.      DefaultTableModel modeloTabla = new DefaultTableModel();
  8.  
  9.       String[] clave = new String[7];
  10.  
  11.    public f_mostrarAvisos()
  12.    {
  13.        initComponents();
  14.  
  15.        try
  16.        {
  17.                FileReader fr = new FileReader("C:/datos2.txt");
  18.                BufferedReader bf = new BufferedReader(fr);
  19.  
  20.                String complete = "";
  21.                String line = bf.readLine();
  22.  
  23.                while (line != null)
  24.                {
  25.  
  26.                    complete += line + "\n";
  27.                    line = bf.readLine();
  28.                }
  29.  
  30.                lecturaFichero = complete;
  31.                bf.close();
  32.                fr.close();
  33.  
  34.          } catch (FileNotFoundException ex)
  35.            {
  36.                JOptionPane.showMessageDialog (this, "El archivo no existe!");
  37.            }
  38.            catch (IOException ex)
  39.            {
  40.                JOptionPane.showMessageDialog(this, "El archivo no se puede leer " );
  41.            }
  42.  
  43.        String cabecera [] = new String [] {"Código","Nombre","Dirección","Teléfono","Máquina", "Nº Serie", "Nº Parte"};
  44.        modeloTabla.setColumnIdentifiers(cabecera);
  45.  
  46.        String datos = new String();
  47.        datos = lecturaFichero;
  48.        StringTokenizer st = new StringTokenizer(datos,";" );
  49.        int c = 0;
  50.  
  51.        while( st.hasMoreTokens() )
  52.        {
  53.            clave[c] = st.nextToken();
  54.  
  55.            c++;
  56.  
  57.            if (c%7 == 0)
  58.            {
  59.                c = 0 ;
  60.                modeloTabla.addRow(clave);    
  61.            }
  62.  
  63.