Hallo zusammen
Ich habe ein Problem mit meiner JTable. Ich habe gesehen, dass das Thema schon etliche male diskutiert wurde, leider bringt mich das nicht viel weiter. Ich habe deshalb gedacht, ich eröffne einen neuen Thread.
Also wie bereits angetönt, aktualisiert meine Tabelle ihre Daten nicht. Folgendes Problem besteht:
Mittels JDOM ziehe ich aus einem XML File etliche Datensätze raus (ca. 1000). Da ich aber jeweils nur 96 Werte in meiner Tabelle anzeigen möchte, habe ich ein Vorwärtsbutton installiert. An diesem Button ist ein ActionListener angebracht.
Sobald ich nun den Button betätige, sollen die nächsten 96 Werte in der JTable angezeigt werden. Ich habe nun diverse Dinge gelesen (z.B. fireTableDataChanged() ), komme jetzt aber einfach nicht mehr weiter. Meine Frage ist nun:
Wie kann ich meine Tabelle refreshen indem ich den Vorwärtsbutton betätige?
Damit Ihr besser versteht was ich genua möchte, hier noch der wesentliche Code:
Vielen Dank für Eure Hilfe...
Ich habe ein Problem mit meiner JTable. Ich habe gesehen, dass das Thema schon etliche male diskutiert wurde, leider bringt mich das nicht viel weiter. Ich habe deshalb gedacht, ich eröffne einen neuen Thread.
Also wie bereits angetönt, aktualisiert meine Tabelle ihre Daten nicht. Folgendes Problem besteht:
Mittels JDOM ziehe ich aus einem XML File etliche Datensätze raus (ca. 1000). Da ich aber jeweils nur 96 Werte in meiner Tabelle anzeigen möchte, habe ich ein Vorwärtsbutton installiert. An diesem Button ist ein ActionListener angebracht.
Sobald ich nun den Button betätige, sollen die nächsten 96 Werte in der JTable angezeigt werden. Ich habe nun diverse Dinge gelesen (z.B. fireTableDataChanged() ), komme jetzt aber einfach nicht mehr weiter. Meine Frage ist nun:
Wie kann ich meine Tabelle refreshen indem ich den Vorwärtsbutton betätige?
Damit Ihr besser versteht was ich genua möchte, hier noch der wesentliche Code:
Code:
// Zeile 0 Button und Action Listener einbauen
JButton vorwaerts = new JButton ("Nächster Fahrplan");
JButton rueckwaerts = new JButton ("Voriger Fahrplan");
//Action Listener für Vorwärts
ActionListener vorwaertsaction = new ActionListener()
{
public void actionPerformed( ActionEvent e)
{
++zaehler;
try {
System.out.println(zaehler);
xmlsax.saxwer(zaehler);
} catch (JDOMException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
...
//Tabelle erneuern funktioniert nicht!!!!! <--- funzt nicht
System.out.println(xmlsax.getAttributWert());
ModellTabelle modelle = new ModellTabelle();
JTable tabelle = new JTable(modelle);
modelle.fireTableDataChanged();
}
};
vorwaerts.addActionListener(vorwaertsaction);
....
ModellTabelle modelle = new ModellTabelle();
JTable tabelle = new JTable(modelle);
addComponent(laenderdetails,diversemoegl,new JScrollPane(tabelle),0,17,500,8,0,0);
....
//Tabellenmodell
class ModellTabelle extends AbstractTableModel {
//***********************//
// Variablendeklaration //
//*********************//
//Für Datenveränderung
private boolean DEBUG = false;
String[] datenueberschrift = {
"Stunde / Minuten", "15 Minuten", "30 Minuten", "45 Minuten", "60 Minuten"
};
String[][] daten = {
{ "Stunde 1", xmlsax.getAttributWert().get(0 + zaehler * 96), xmlsax.getAttributWert().get(1 + zaehler * 96), xmlsax.getAttributWert().get(2 + zaehler * 96), xmlsax.getAttributWert().get(3 + zaehler * 96), },
{ "Stunde 2", xmlsax.getAttributWert().get(4 + zaehler * 96), xmlsax.getAttributWert().get(5 + zaehler * 96), xmlsax.getAttributWert().get(6 + zaehler * 96), xmlsax.getAttributWert().get(7 + zaehler * 96), },
{ "Stunde 3", xmlsax.getAttributWert().get(8 + zaehler * 96), xmlsax.getAttributWert().get(9 + zaehler * 96), xmlsax.getAttributWert().get(10 + zaehler * 96), xmlsax.getAttributWert().get(11 + zaehler * 96), },
{ "Stunde 4", xmlsax.getAttributWert().get(12 + zaehler * 96), xmlsax.getAttributWert().get(13 + zaehler * 96), xmlsax.getAttributWert().get(14 + zaehler * 96), xmlsax.getAttributWert().get(15 + zaehler * 96), },
{ "Stunde 5", xmlsax.getAttributWert().get(16 + zaehler * 96), xmlsax.getAttributWert().get(17 + zaehler * 96), xmlsax.getAttributWert().get(18 + zaehler * 96), xmlsax.getAttributWert().get(19 + zaehler * 96), },
{ "Stunde 6", xmlsax.getAttributWert().get(20 + zaehler * 96), xmlsax.getAttributWert().get(21 + zaehler * 96), xmlsax.getAttributWert().get(22 + zaehler * 96), xmlsax.getAttributWert().get(23 + zaehler * 96), },
{ "Stunde 7", xmlsax.getAttributWert().get(24 + zaehler * 96), xmlsax.getAttributWert().get(25 + zaehler * 96), xmlsax.getAttributWert().get(26 + zaehler * 96), xmlsax.getAttributWert().get(27 + zaehler * 96), },
{ "Stunde 8", xmlsax.getAttributWert().get(28 + zaehler * 96), xmlsax.getAttributWert().get(29 + zaehler * 96), xmlsax.getAttributWert().get(30 + zaehler * 96), xmlsax.getAttributWert().get(31 + zaehler * 96), },
{ "Stunde 9", xmlsax.getAttributWert().get(32 + zaehler * 96), xmlsax.getAttributWert().get(33 + zaehler * 96), xmlsax.getAttributWert().get(34 + zaehler * 96), xmlsax.getAttributWert().get(35 + zaehler * 96), },
{ "Stunde 10", xmlsax.getAttributWert().get(36 + zaehler * 96), xmlsax.getAttributWert().get(37 + zaehler * 96), xmlsax.getAttributWert().get(38 + zaehler * 96), xmlsax.getAttributWert().get(39 + zaehler * 96), },
{ "Stunde 11", xmlsax.getAttributWert().get(40 + zaehler * 96), xmlsax.getAttributWert().get(41 + zaehler * 96), xmlsax.getAttributWert().get(42 + zaehler * 96), xmlsax.getAttributWert().get(43 + zaehler * 96), },
{ "Stunde 12", xmlsax.getAttributWert().get(44 + zaehler * 96), xmlsax.getAttributWert().get(45 + zaehler * 96), xmlsax.getAttributWert().get(46 + zaehler * 96), xmlsax.getAttributWert().get(47 + zaehler * 96), },
{ "Stunde 13", xmlsax.getAttributWert().get(48 + zaehler * 96), xmlsax.getAttributWert().get(49 + zaehler * 96), xmlsax.getAttributWert().get(50 + zaehler * 96), xmlsax.getAttributWert().get(51 + zaehler * 96), },
{ "Stunde 14", xmlsax.getAttributWert().get(52 + zaehler * 96), xmlsax.getAttributWert().get(53 + zaehler * 96), xmlsax.getAttributWert().get(54 + zaehler * 96), xmlsax.getAttributWert().get(55 + zaehler * 96), },
{ "Stunde 15", xmlsax.getAttributWert().get(56 + zaehler * 96), xmlsax.getAttributWert().get(57 + zaehler * 96), xmlsax.getAttributWert().get(58 + zaehler * 96), xmlsax.getAttributWert().get(59 + zaehler * 96), },
{ "Stunde 16", xmlsax.getAttributWert().get(60 + zaehler * 96), xmlsax.getAttributWert().get(61 + zaehler * 96), xmlsax.getAttributWert().get(62 + zaehler * 96), xmlsax.getAttributWert().get(63 + zaehler * 96), },
{ "Stunde 17", xmlsax.getAttributWert().get(64 + zaehler * 96), xmlsax.getAttributWert().get(65 + zaehler * 96), xmlsax.getAttributWert().get(66 + zaehler * 96), xmlsax.getAttributWert().get(67 + zaehler * 96), },
{ "Stunde 18", xmlsax.getAttributWert().get(68 + zaehler * 96), xmlsax.getAttributWert().get(69 + zaehler * 96), xmlsax.getAttributWert().get(70 + zaehler * 96), xmlsax.getAttributWert().get(71 + zaehler * 96), },
{ "Stunde 19", xmlsax.getAttributWert().get(72 + zaehler * 96), xmlsax.getAttributWert().get(73 + zaehler * 96), xmlsax.getAttributWert().get(74 + zaehler * 96), xmlsax.getAttributWert().get(75 + zaehler * 96), },
{ "Stunde 20", xmlsax.getAttributWert().get(76 + zaehler * 96), xmlsax.getAttributWert().get(77 + zaehler * 96), xmlsax.getAttributWert().get(78 + zaehler * 96), xmlsax.getAttributWert().get(79 + zaehler * 96), },
{ "Stunde 21", xmlsax.getAttributWert().get(80 + zaehler * 96), xmlsax.getAttributWert().get(81 + zaehler * 96), xmlsax.getAttributWert().get(82 + zaehler * 96), xmlsax.getAttributWert().get(83 + zaehler * 96), },
{ "Stunde 22", xmlsax.getAttributWert().get(84 + zaehler * 96), xmlsax.getAttributWert().get(85 + zaehler * 96), xmlsax.getAttributWert().get(86 + zaehler * 96), xmlsax.getAttributWert().get(87 + zaehler * 96), },
{ "Stunde 23", xmlsax.getAttributWert().get(88 + zaehler * 96), xmlsax.getAttributWert().get(89 + zaehler * 96), xmlsax.getAttributWert().get(90 + zaehler * 96), xmlsax.getAttributWert().get(91 + zaehler * 96), },
{ "Stunde 24", xmlsax.getAttributWert().get(92 + zaehler * 96), xmlsax.getAttributWert().get(93 + zaehler * 96), xmlsax.getAttributWert().get(94 + zaehler * 96), xmlsax.getAttributWert().get(95 + zaehler * 96), }
//{ "Stunde 25", xmlsax.getAttributWert().get(96), xmlsax.getAttributWert().get(97), xmlsax.getAttributWert().get(98), xmlsax.getAttributWert().get(99), }
};
//Die Anzahl Reihen
public int getRowCount() {
return daten.length;
}
//Die Anzahl Kolonnen
public int getColumnCount() {
return datenueberschrift.length;
}
public String getColumnName(int col) {
return datenueberschrift[col];
}
public Object getValueAt(int row, int col) {
return daten[row][col];
}
// Macht Tabelle editierbar
public boolean isCellEditable(int row, int col) {
//Daten/Zellen sind konstant,
//egal wo man bearbeitet.
if (col < 2) {
return false;
} else {
return true;
}
}
//Macht das sich Tabellendaten ändern können
public void setValueAt(String value, int row, int col) {
if (DEBUG) {
System.out.println("Setting value at " + row + "," + col
+ " to " + value
+ " (an instance of "
+ value.getClass() + ")");
}
daten[row][col] = value;
fireTableCellUpdated(row, col);
if (DEBUG) {
System.out.println("New value of data:");
printDebugData();
}
}
private void printDebugData() {
int numRows = getRowCount();
int numCols = getColumnCount();
for (int i=0; i < numRows; i++) {
System.out.print(" row " + i + ":");
for (int j=0; j < numCols; j++) {
System.out.print(" " + daten[i][j]);
}
System.out.println();
}
System.out.println("--------------------------");
}
}
}
Vielen Dank für Eure Hilfe...