TableModel von AbstractTableM. oder DefaultTableM. ableiten?

Status
Nicht offen für weitere Antworten.
S

Schanll

Gast
Soll ich mein eigenes TableModel von AbstractTableM. oder DefaultTableM. ableiten?

Mit Google find ich ein paar Posts wo Leute AbstractTableM. nutzen bzw. dazu raten, geben aber keine Gruende an. Was sind denn genau die Unterschiede? Auswirkungen wenn man von der einen oder anderen Klasse ableitet?
 
S

SlaterB

Gast
das DefaultTableModel hat Vectoren für die Daten und alle zugehörigen Methoden passend definiert, auch für kompliziertere Dinge wie Einfügen neuer Zeilen

wenn man das verwenden will, dann sollte man logischerweise davon erben,
wenn man dagegen ein eigenes Datenmodell hat und alle Methoden darauf umbiegt,
dann wäre es unklug, vom DefaultTableModel zu erben

das AbstractTableModel kümmert sich um das Event-Handling, also auch schon ne ganze Menge,
 

Ebenius

Top Contributor
SlaterB hat gesagt.:
das AbstractTableModel kümmert sich um das Event-Handling, also auch schon ne ganze Menge,
Handling^WDispatching

Ich benutze das DefaultTableModel eigentlich nur für GUI-Tests. Die alte Vector-Klasse auf die diese Implementierung mag ich nicht (wegen Synchronisierung). Meine Daten halte ich ohnehin meist nicht direkt im TableModel und im Gegensatz zu einem TreeModel (bei dem man am Anfang recht schnell mal mit den zu versendenden Events durcheinander kommen kann) ist das TableModel schön einfach zu implementieren.

Geschmackssache ist's natürlich auch. :-D

Grüße, Ebenius
 

L-ectron-X

Gesperrter Benutzer
Das DefaultTableModel macht sich ganz gut bei tabellenartig organisierten Daten. Bei Daten, die nicht tabellenartig vorliegen (bspw. baumartig), aber in einer JTable tabellarisch angezeigt werden sollen, kommt man eigentlich nicht um ein eigenes TableModel herum, welches man wiederum von AbstractTableModel erben lässt. Die Datenstruktur wird dann intern in ein tabellarisches Konzept umgeformt.
 
S

SlaterB

Gast
ich kopier noch mal frech dazu:

Zudem würde ich gerne wissen, wo der Unterschied zwischen
"implements TableModel"
und
"extends AbstractTableModel"
liegt
http://www.java-forum.org/de/viewtopic.php?t=79869

ein AbstractTableModel bietet jede Menge echten Quellcode zur Verwaltung von Listenern,
Erzeugung von Events, Senden an Listenern usw.,
die 100 Zeilen müsste jedes andere TableModel mehr oder weniger genauso enthalten

TableModel ist nur ein Interface ohne Implementierung
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben