JTable nach Öffnen-Dialog umbaun

Status
Nicht offen für weitere Antworten.

diggaa1984

Top Contributor
hiho

ich habe nen JTable, der zum Programmstart (keine Parameterübergabe beim Start) mit Standardwerten erstellt wird:
- 5 Spalten
- keine Datenreihen

habe für diesen Table auch ein eigenes TableModel geschrieben.

Die Frage nun wie mach ich es am besten, das beim laden aus einer datei (KlasseXY.getAllData() gibt quasi 2-dimensionales Datenarray nach Laden korrekt heraus) die Tabelle notfalls komplett umgebaut werden müsste:

- Anzahl und Beschriftung der Spalten
- Anzahl und Inhalt der Datensätze (was wohl weniger schwer sein sollte durch das TableModel
 
hm, ging schneller als ich dachte, aber bestimmt nich fein die Methode :roll:
Code:
public class DataCard extends JPanel {

	[...]
//man achte auf die global deklarierten (privaten) Variablen myModel und table ^^ 
//würde ich versuchen zu vermeiden wenn mit irgendwann n anderes Konzept einfällt
public void updateInfo() {
		if (control.hasChanges() > control.EXPECTED_STATE) {
			myModel.checkConsistency();
		}
		
		if (control.hasChanges() < control.EXPECTED_STATE) {
			MyTableModel tempModel = new MyTableModel(control.getAllAttributes());
			myModel = tempModel;
			JTable tempTable = new JTable(myModel);
			table = tempTable;
			this.validate();
		}
	}//updateInfo

	[...]

}//class DataCard
quasi setz ich ja n neuen table auf, was mit sicherheit nicht wünschenswert ist, aber da es sich hier erstma um eine Minimalkonfiguration des Programms handelt, bin ich bestrebt mein TableModel, bzw alles was noch fehlt sauberer und strukturierter zu coden.

Bin aber dennoch für Vorschläge à la "so wirds richtig gemacht" offen. grad beim TableModel kann man bestimmt schnell das ganze unnötig aufblähen.
 
generelle Hilfestellung zu JTable gibt es hier in der FAQ. Jedesmal eine neue Tabelle und ein neues TableModel erstellen ist überflüssig. Ich persönlich arbeite meist mit dem DefaultTableModel bzw. leite meine eigenen TableModels von diesem ab.
 
Es ist nicht nötig, die JTable immer wieder neu zu erzeugen.
Da die neuen Daten unterschiedlich strukturiert sind, würde ich einfach ein neues TableModel setzen:
Code:
table.setModel(..);
 
ist das radikale aendern des Models auf die Art üblich, oder sollten man sich eigentlich mit dem einstigen Model beschäftigen und da die vektoren manipulieren? .. mal abgesehen vom aufwand tendiere ich ja zu letzterem
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben