Hi!
Ich habe ein kleines Problem mit meiner Tabelle.
In meiner Klasse wird zu oberst ein DataModel initialisiert und an eine Tabelle übergeben.
Die GUI wird aufgebaut und dann eine Funktion aufgerufen, die das DataModel füllt.
DataModel ist übrigens ne Ableitung von AbstractTableModel,
Das GAnze sieht in etwa so aus:
So die Änderungen im dataModel werden über eine Funktion namens addDataSet() durchgeführt, die eine Klasse entgegennimmt, in der einige Werte drin stehen, und diese in eine ArrayListe steckt. So ein DataSet ist quasi eine Zeile in meiner Tabelle und die ArrayList sammelt diese Zeilen.
Mein Problem ist nun, dass beim Einlesen der Daten in das DataModel Dateien von versch. Rechenrn im Netz abgefragt werden müssen. Das dauert ne Weile. Ich hätte gerne, dass die Tabelle aktuell vorhandenen DataSets anzeigt, während neue eingelesen werden.
Wenn ich aber in der UpdateDataModel Methode ein neues DataModel anlege und dann sogar noch neu der Tabelle zuweisen muss, wird des nix mit der ständigen Aktualisierung. Das ich ein neues DataModel neu der Tabelle zuweisen muss ist klar. Aber warum muss ich ein neues DataModell anlegen???
Die Aktualisierung muss übrigens in der Funktion bleiben, weil es da so nen Refreshbutton gibt, der wie der Name schon sagt, die Tabelle refreshen soll...
Sicher ne Anfänger Frage und für eich Cracks gar kein Problem
Vielen Dank!!!
Ich habe ein kleines Problem mit meiner Tabelle.
In meiner Klasse wird zu oberst ein DataModel initialisiert und an eine Tabelle übergeben.
Die GUI wird aufgebaut und dann eine Funktion aufgerufen, die das DataModel füllt.
DataModel ist übrigens ne Ableitung von AbstractTableModel,
Das GAnze sieht in etwa so aus:
Code:
public class meineKlasse()
{
DataModel dataModel = new DataModel();
JTable table;
JScrollPane scrollPane;
public go()
{
table = new JTable(dataModel);
//Gui zusammenstecken, table in Scrollpane stecken...
updateDataModel() //Einlesen der Daten in das DataModel
}
public updateDataModel()
{
dataModel = new DataModel(); //Wieso???
//Mehrere Funktionen, die Daten über die addDataSet() Methode in das dataModel schreiben
table.setModel(dataModel); //Eigentlich sollte aktualisiert werden nicht komplett neu gemacht werden...
}
}
So die Änderungen im dataModel werden über eine Funktion namens addDataSet() durchgeführt, die eine Klasse entgegennimmt, in der einige Werte drin stehen, und diese in eine ArrayListe steckt. So ein DataSet ist quasi eine Zeile in meiner Tabelle und die ArrayList sammelt diese Zeilen.
Code:
public class DataModel()
{
public void addDataSet(DataSet set)
{
dataRow.add(set); //DataRow ist das ArrayList
fireTableDataChanged();
}
}
Mein Problem ist nun, dass beim Einlesen der Daten in das DataModel Dateien von versch. Rechenrn im Netz abgefragt werden müssen. Das dauert ne Weile. Ich hätte gerne, dass die Tabelle aktuell vorhandenen DataSets anzeigt, während neue eingelesen werden.
Wenn ich aber in der UpdateDataModel Methode ein neues DataModel anlege und dann sogar noch neu der Tabelle zuweisen muss, wird des nix mit der ständigen Aktualisierung. Das ich ein neues DataModel neu der Tabelle zuweisen muss ist klar. Aber warum muss ich ein neues DataModell anlegen???
Die Aktualisierung muss übrigens in der Funktion bleiben, weil es da so nen Refreshbutton gibt, der wie der Name schon sagt, die Tabelle refreshen soll...
Sicher ne Anfänger Frage und für eich Cracks gar kein Problem
Vielen Dank!!!