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
//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);
}
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.
Gracias por decirme lo de String tokenizer
Lo pongo como ejemplo
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);
}