OutlineModel tableChanged

c-p

Mitglied
Hallo,

Ich habe folgendes Problem.

Ich habe mit Hilfe von Outline eine Baumtabelle erstellt. Diese Baumtabelle bedient sich einem selbstgeschriebenen OutlineModel.

Mit eHilfe eines ModelListeners will ich überprüfen wann änderungen in der Tabelle vorgenommen werden und dementsprechned sollen weitere Funktionen durchgeführt werden.

Mein Problem ist nun, das eine Änderung erst wahrgenommen wird nachdem ich in eine andere Zelle klicke. Mir ist nicht genuau klar warum und leider findet man nur etwas direkt zur Anwendung an JTables. Ich hoffe, dass mir jemand weiter helfen kann.
 

KrokoDiehl

Top Contributor
Du sprichst von Swing, einer JTable und einem TableModel?

Also wenn dein OutlineModel z.B. von AbstractTableModel erbt, dann hast du Methoden wie
Code:
fireXXX
. Immer wenn sich etwas an deinem Modell von aussen ändert, muss dein Modell alle TableModelListener benachrichtigen. Dafür gibt es die
Code:
fireXXX
-Methoden.
Deine Problembeschreibung klingt zumindest genau danach: Im Modell ändern sich Daten, die anzeigende Tabelle bekommt das aber erst mit, wenn sie zum Neuzeichnen gezwungen wird (z.B. durch Selektion).
 

c-p

Mitglied
Ja das habe ich mir fast gedacht, da ich meine Recherchen das auch schon ergeben haben, war mir nur nicht ganz sicher, da ich halt die fire-Methoden noch nicht ganz verstanden hatte. Problem bei mir ist eher das mir nicht die gängigen fire-Methoden wie ich sie für die TableModels gefunden habe zur Verfügung stehen. Aber erst einmal vielen dank, da muss ich mal sehen wie ich das hinbekomme.
 

c-p

Mitglied
Ich habs gelöst, also meine OutlineModel erbt eben halt leider nicht von AbstractTableModel, daher hatte ich eben wie gesagt das Problem dass mir keine Standard-fire-Methoden zur Verfügung standen.

Allerdings erfolgen die Änderungen bei mir durch Anklicken von Buttons in der Tabelle, für die ich eigens einen CellEditor geschrieben habe und bei den CellEditoren gibt es die Methode fireEditingStopped(), die ebenfalls allen Listenern mitteilt das eine Änderung erfolgt ist. Nun klappt es. :)

Noch mal vielen Dank für die Hilfe.
 

Neue Themen


Oben