mrjerk: Inhalt aus Textdatei lesen und in einer JTable darstellen

Beitrag lesen

Hallo,

Ich möchte gerne den Inhalt einer .txt-Datei in einer JTable darstellen.

Wie genau sieht die aus? Deiner bisherigen Implementierung entnehme ich, dass das in etwa so aussieht:

<Titel1>
<Username1>
<Passwort1>
<Beschreibung1>
<Titel2>
...

Ist das korrekt?

Der Haken an Deiner Lösung ist, dass Arrays in Java eine ziemlich unflexible Sache sind - einmal initialisiert, kann man sie nicht mehr ändern, Elemente dazufügen usw.
Hierfür benutzt man in Java üblicherweise Vektoren oder, was Du weiter oben ja schon gemacht hast, ArrayLists.

Ich würde für Deine Tabelle wohl das DefaultTableModel nutzen, und das dann mit Vektoren vollstopfen:

  
  
// Columns  
Vector<String> columns = new Vector<String>();  
columns.add ("Title");  
columns.add ("User Namen");  
columns.add ("Passwort");  
columns.add ("Beschreibung");  
  
DefaultDataModel dataModel = new DefaultDataModel(columns,0);  
  
// Lets put data in it  
for (int line = 0; line < inhalt_pwFile.size(); line++) {  
   Vector<String> row = new Vector<String>();  
   if (line+3 > inhalt_pwFile.size()-1) {  
      Sytem.err.println ("Data not complete, file seems to be corrupted");  
      break;  
   }  
   else {  
      row.add(inhalt_pwFile.get(line));  
      row.add(inhalt_pwFile.get(line+1);  
      row.add(inhalt_pwFile.get(line+2);  
      row.add(inhalt_pwFile.get(line+3);  
      line+=3;  
      dataModel.addRow(row);  
   }  
}  
  
// All set. Lets go  
JTable table = new JTable(dataModel);  
  

(ohne Gewähr, ausprobiert habe ich o.g. nicht, aber zusammen mit den Links sollte die Idee so ungefähr klar werden).

Das macht allerdings nur Sinn, wenn Deine Daten recht einfach strukturiert sind. Bei komplexeren Daten solltest Du Dir überlegen, ein eigenes Daten-Modell zu basteln statt das DefaultDataModel zu benutzen, damit der Code noch gut lesbar und einfach wartbar ist.

Hope that helps.

Viele Grüße,
Jörg