[solucionado]Ayuda a la hora de introducir datos en un jtable

Iniciado por juni85, 17 Octubre 2011, 12:24 PM

0 Miembros y 2 Visitantes están viendo este tema.

juni85

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 (java) [Seleccionar]


//lo que llevo realizado


 public f_mostrarAvisos()
   {
       initComponents();
     
       String columNames[]={"Código","Nombre","Dirección","Teléfono","Máquina", "NºSerie", "Nº Parte"};
       modeloTabla.setColumnIdentifiers(columNames);
       //jTable1.setModel(modeloTabla);

       String datos = new String();
       datos = prin.datosGuardados;
       String [] array = datos.split(";");

           for (int i = 0; i < array.length; i++)
           {
                contarPalabras = contarPalabras + 1;

           }
       totalFilas = contarPalabras / 7;
       //por si faltan datos
       totalFilas = totalFilas + 1 ;



       String datos2 = new String();
       datos2 = prin.datosGuardados;
       String [] array1 = datos2.split(";");
       Object [] fila = new Object [totalFilas];

     //creación de las filas
       
          for (int f = 0; f < totalFilas; f++)
           {                
                    modeloTabla.addRow(fila);
           }

       jTable1.setModel(modeloTabla);
   }







adastra

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.

juni85

Gracias por decirme lo de String tokenizer

Lo pongo como ejemplo
Código (java) [Seleccionar]

     int i = 0;
     int totalFilas = 0;
     int contarPalabras = 0;
     int a = 0 ;
     public String lecturaFichero;

     DefaultTableModel modeloTabla = new DefaultTableModel();

      String[] clave = new String[7];

   public f_mostrarAvisos()
   {
       initComponents();

       try
       {
               FileReader fr = new FileReader("C:/datos2.txt");
               BufferedReader bf = new BufferedReader(fr);
             
               String complete = "";
               String line = bf.readLine();
       
               while (line != null)
               {
             
                   complete += line + "\n";
                   line = bf.readLine();
               }
           
               lecturaFichero = complete;
               bf.close();
               fr.close();
           
         } catch (FileNotFoundException ex)
           {
               JOptionPane.showMessageDialog (this, "El archivo no existe!");
           }
           catch (IOException ex)
           {
               JOptionPane.showMessageDialog(this, "El archivo no se puede leer " );
           }

       String cabecera [] = new String [] {"Código","Nombre","Dirección","Teléfono","Máquina", "Nº Serie", "Nº Parte"};
       modeloTabla.setColumnIdentifiers(cabecera);
   
       String datos = new String();
       datos = lecturaFichero;
       StringTokenizer st = new StringTokenizer(datos,";" );
       int c = 0;

       while( st.hasMoreTokens() )
       {
           clave[c] = st.nextToken();

           c++;

           if (c%7 == 0)
           {
               c = 0 ;
               modeloTabla.addRow(clave);    
           }