Hallo,
ich habe mit ein Programm geschrieben, das ein Textfile einliest und per Button den Inhalt in einer JTable darstellt.
Wenn jetzt im Textfile neue Einträge dazukommen (immer ein Block wie z.B Zeile 2 - 6) dann wird in ca. 50% der Fälle der neue Eintrag in der Tabelle gelistet. In den restlichen Fällen jedoch nicht. Ich habe keine Ahnung warum das so ist und bitte um Eure Unterstützung.
Die Ausgabe des DataVectors ergibt 7 Einträge, in der Tabelle werden jedoch nur 6 Zeilen gelistet
Beispiel Code:
Das Testfile habe ich hochgeladen.
Danke und LG,
GGK
ich habe mit ein Programm geschrieben, das ein Textfile einliest und per Button den Inhalt in einer JTable darstellt.
Wenn jetzt im Textfile neue Einträge dazukommen (immer ein Block wie z.B Zeile 2 - 6) dann wird in ca. 50% der Fälle der neue Eintrag in der Tabelle gelistet. In den restlichen Fällen jedoch nicht. Ich habe keine Ahnung warum das so ist und bitte um Eure Unterstützung.
Die Ausgabe des DataVectors ergibt 7 Einträge, in der Tabelle werden jedoch nur 6 Zeilen gelistet
Java:
System.out.println("DataVector: "+model.getDataVector());
Beispiel Code:
Java:
public class TestTable extends JFrame {
private JPanel contentPane;
private Vector rows = new Vector();
private Vector title = new Vector();
private DefaultTableModel model = new DefaultTableModel();
private JTable table;
private JButton btnNewButton;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TestTable frame = new TestTable();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
* @throws IOException
*/
public TestTable() throws IOException {
contentPane = new JPanel();
setBounds(100, 100, 444, 378);
contentPane.setBackground(new Color(1,60,95));
setContentPane(contentPane);
contentPane.setLayout(null);
title = new Vector();
title.add("Nr.");
title.add("Name");
title.add("Kennung");
title.add("Datum");
title.add("Zeit");
title.add("Beschreibung");
model = new DefaultTableModel (rows, title);
table = new JTable(model);
table.setAutoCreateRowSorter(true);
table.getTableHeader().setReorderingAllowed( true );
table.getTableHeader().setResizingAllowed( true );
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setBounds(10, 91, 407, 242);
scrollPane.setViewportView(table);
contentPane.add(scrollPane);
btnNewButton = new JButton("einlesen");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e1) {
try {
tabelErstellen();
} catch (IOException e11) {
// TODO Auto-generated catch block
e11.printStackTrace();
}
}
});
btnNewButton.setBounds(10, 19, 89, 23);
contentPane.add(btnNewButton);
}
public void tabelErstellen() throws IOException {
File file = new File ("D:/tmp/testfile.txt");
FileReader freader = new FileReader(file);
BufferedReader reader = new BufferedReader(freader);
int jT = table.getRowCount();
System.out.println("JTable hat "+ jT +" Eintäge");
for(int j=table.getRowCount()-1;j>=0;j--) {
System.out.println("I: "+j);
model.removeRow(j);
}
System.out.println("JTable hat "+ jT +" Eintäge");
model.setRowCount(0);
if (jT > 0){
model = new DefaultTableModel (rows, title);
}
System.out.println("JTable hat "+ jT +" Eintäge");
String s;
String com = "";
String n = "";
String p = "";
String d = "";
String t = "";
String b = "";
int zaehler = 0;
Vector rows = new Vector();
Vector row = new Vector();
while (( s = reader.readLine()) != null) {
if (s.contains("0010,0010")) {
n = s.replace("^^^", "");
n = n.replace("^^", " ");
n = n.replace("^", ",");
n = n.replace("[", "");
n = n.replace("]", "");
n = n.trim();
n = n.substring(15);
System.out.println("Nr: "+zaehler);
System.out.println("Name: "+n);
if (!com.equals(n)) {
zaehler++;
row = new Vector();
row.add(zaehler);
row.add(n);
continue;
}
com=n;
}
if (s.contains("0010,0020")) {
p = s.replace("[", "");
p = p.replace("]", "");
p = p.substring(23);
System.out.println("PID: "+p);
row.add(p);
}
if (s.contains("0008,0020")) {
d = s.replace("[", "");
d = d.replace("]", "");
d = d.substring(23);
System.out.println("Date: "+d);
row.add(d);
//*System.out.println("row: "+row.get(0));
}
if (s.contains("0008,0030")) {
t = s.replace("[", "");
t = t.replace("]", "");
t = t.substring(23);
System.out.println("Time: "+t);
row.add(t);
//*System.out.println("row: "+row.get(0));
}
if (s.contains("0008,1030")) {
b = s.replace("[", "");
b = d.replace("]", "");
b = d.substring(0);
System.out.println("Descr: "+b+"\n");
row.add(b);
/*System.out.println("Row: "+row.get(1));
System.out.println("Row: "+row.get(2));
System.out.println("Row: "+row.get(3));
System.out.println("Row: "+row.get(4));
System.out.println("Row: "+row.get(5));
*/
rows.add(row);
model.addRow(row);
model.fireTableDataChanged();
table.repaint();
System.out.println("DataVector: "+model.getDataVector());
//*System.out.println("rows: "+rows.get(0));
}
}
}
}
Das Testfile habe ich hochgeladen.
Danke und LG,
GGK