TableModelEvent ermitteln

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
So ich hab mal ne frage und hoffe diese halbwegs verständlich formulieren zu können.

Also ich habe ein Frame wo eine JTable exestiert, welche mittels ResultSet gefüllt wird.
Dazu hab ich nen eigenes TableModel, welches von dem AbstractTableModel abgeleitet wird.

So in diesem Model habe ich in zwei verschiedenen Methoden ein Fire von einem Event.. Einmal StructureChanged und einmal TableChanged.

So nun hab ich auf diesem Model ein ActionListener im Frame.

Wenn nun im Model ein Event gefeuert wird (eine der beiden FireMethoden), wird der TableModelListener im Frame aktiv..

soweit alles wie gewünscht..

Nun zu meiner Frage:

Wie kann ich im Listener nun herausfinden welches Event gefeuert wurde? Möchte dies nur ungern mit externen Variablen setzten um diese dann abzufragen.

Gibt es da eine Möglichkeit z.b. abzufragen welches Event aktiv ist? Ob das nun z.b. ein StructureChange ist oder etwas anderes?


LG
 

dope

Mitglied
ups als gast gestartet.. naja ich bin der Gast.



b2t:

das ist richtig..

hab aber schon fast alles mit e ausprobiert.. getSource etc, aber entweder sind die werte aller events gleich oder die benutze funktion ist einfach falsch.

muss ich vielleicht andere events verwenden?

hat das jemand schonmal so realisiert, oder gibt es da ein geschickteres vorgehen?
 

dope

Mitglied
so hab es hinbekommen.

Die beiden von mir verwendeten Fire Methoden haben die selbe Wertigkeit gehabt. Beide 0.
Hab nun eine andere Fire Methode genommen, die mir -1 liefert.

Nun lassen sich die beiden unterscheiden und im Listener gezielt abfragen.

lg

dope
 

André Uhres

Top Contributor
Gast hat gesagt.:
..Dazu hab ich nen eigenes TableModel, welches von dem AbstractTableModel* abgeleitet wird..
*Tipp: Die direkte Ableitung von AbstractTableModel ist schlechter Stil, denn OOP empfiehlt den Gebrauch von DefaultTableModel.
 
B

Beni

Gast
André: hä? Wieso soll das schlechter Stil sein? Das AbstractTableModel existiert doch gerade deshalb, damit man leicht ein eigenes schreiben kann. ???:L
 

André Uhres

Top Contributor
Beni hat gesagt.:
André: hä? Wieso soll das schlechter Stil sein? Das AbstractTableModel existiert doch gerade deshalb, damit man leicht ein eigenes schreiben kann. ???:L
Naja, ich kann mich nicht unbedingt als OOP Shamanen bezeichnen (um eine Vokabel von Leroy aufzugreifen).
Aber ich glaube, daß professionelle OOP-Entwickler nie zögern werden, die Arbeit anderer wiederzuverwenden,
solange sie ihren Anforderungen entspricht, von hoher Qualität ist, sowie gut dokumentiert und leicht verständlich ist.
Das "NIH-Syndrom" ist wohl eine Legende (Not Invented Here).
Wenn dieses Syndrom wiklich existieren würde, dann würden objektorientierte Entwicklungsumgebungen nicht mit
Klassenbibliotheken aufwarten, und die hunderten von Firmen, die wiederverwendbare Komponenten und Frameworks
verkaufen, gäbe es dann auch nicht.
(Btw: DefaultTableModel ist eine Erweiterung von AbstractTableModel und entspricht sicherlich professionellen Ansprüchen).
 

André Uhres

Top Contributor
L-ectron-X hat gesagt.:
Ich hab meine eigenen TableModels auch bisher immer von AbstractTableModel abgeleitet.
Ja gut, das mach ich ja auch.
Nur mach ich's nicht direkt von AbstractTableModel, sondern indem ich dessen Erweiterung,
DefaultTableModel wiederverwende und gegebenenfalls erweitere.
So nutze ich den bereits bestehenden tollen Code und muss nicht ne Menge neu erfinden :D
 

André Uhres

Top Contributor
Illuvatar hat gesagt.:
Das DefaultTreeModel ist eben schon um einiges spezieller als das abstrakte...
Naja, "spezieller" ist wahrscheinlich nicht der richtige Ausdruck:
DefaultTableModel (das meinst du ja wohl) ist einfach "nützlicher" als sein Vater
und bleibt dabei genauso flexibel, da man seine Methoden ebenfalls überschreiben kann.
DefaultTableModel ist also in jedem Fall vorzuziehen.
 
B

Beni

Gast
Nach dieser Logik müsste man aber immer von der untersten Klasse einer Klassenhierarchie ableiten.
IMHO: Je tiefer unten man in der Hierarchie ist, desto spzialisierter sind die Klassen. Irgendwann ist man so spezialisiert, dass es nicht mehr zur Aufgabe passt, die man lösen möchte. Deshalb kann (muss aber nicht!) es Sinn machen, auchmal direkt von AbstracTableModel zu erben.
 

André Uhres

Top Contributor
Beni hat gesagt.:
Nach dieser Logik müsste man aber immer von der untersten Klasse einer Klassenhierarchie ableiten.
IMHO: Je tiefer unten man in der Hierarchie ist, desto spzialisierter sind die Klassen. Irgendwann ist man so spezialisiert, dass es nicht mehr zur Aufgabe passt, die man lösen möchte. Deshalb kann (muss aber nicht!) es Sinn machen, auchmal direkt von AbstracTableModel zu erben.
Ich will ja gar nicht verallgemeinern. Aber im Fall von DefaultTableModel wäre es tatsächlich sinnlos direkt vom Vater abzuleiten.
Der muss ja dann das, was der Sohn schon längst kann, erstmal selbst lernen.
Das wäre aber schlechter Stil, denn man sollte ja, soweit wie möglich, bestehenden Code nutzen.
Und wer mit JTable arbeitet, der kommt in der Hinsicht nicht an DefaultTableModel vorbei.
 
R

Roar

Gast
DefaultTableModel kann nicht mehr als AbstractTableModel außer, dass es mit diese Vectoren zur datenhaltung aufzwingt. wenn ich also woanders meine daten halte als in vectoren, was ja irgendwie immer der fall ist, muss ich entweder was schreiben um meine daten in die vectoren vom defaulttablemodel zu packen oder ich überschreibe alle methoden im defaulttablemodel, welche die daten auslesen, und biege die auf mein model um, und dann bleibt mir vom dtm nich mehr als mit das abstracttablemodel bietet :roll:

sogar im sourcecode in DTM steht:
Code:
	// Sometimes the DefaultTableModel is subclassed 
	// instead of the AbstractTableModel by mistake.
:lol:
 

André Uhres

Top Contributor
Roar hat gesagt.:
DefaultTableModel kann nicht mehr als AbstractTableModel ..
DTM kann selbstverständlich viel mehr als ATM, da kann nun wirklich niemand das Gegenteil behaupten :wink:
Wie kommst du nur auf die Sache mit den Vectoren? Vectoren werden in keiner Weise aufgezwungen :wink:
Der Kommentar aus dem Code von DTM ist im Zusammenhang zu lesen,
und hat dann eine ganz andere Bedeutung, ausserdem steht da ja eh nur "Sometimes" :wink:
 
R

Roar

Gast
ne, das einzige was das dtm mehr kann sind die vectoren, und die methoden um diese vectoren zu verändern. wenn ich die vectoren über bord werfe bietet mir das dtm nicht mehr als das atm ;)
 

Illuvatar

Top Contributor
Das ist ja auch klar, und es kann häufig nützlich sein. Aber genauso häufig kann es auch total unnütz sein. Wenn du eine TableModel schreibst, dass direkt mit ner DB interagiert, brauchst du das Zeugs aus DefaultTableModel nicht. Und vielleicht willst du ja so Methoden wie addColumn/addRow auch nicht haben...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P [JTable] Warum liefert TableModelEvent.getColumn immer -1 AWT, Swing, JavaFX & SWT 7
S TableModelEvent AWT, Swing, JavaFX & SWT 17
H CheckBoxListCell Selektion ermitteln AWT, Swing, JavaFX & SWT 2
B Minimum x und y von Children-JPanels ermitteln AWT, Swing, JavaFX & SWT 3
P JavaFX aktuelle Tabellenzeile bei Choice-Box-Auswahl in Zelle ermitteln AWT, Swing, JavaFX & SWT 28
P JavaFX Key-Value-Paar auf TreeItem ermitteln AWT, Swing, JavaFX & SWT 6
L JComponent aus JPanel anhand Mausposition ermitteln AWT, Swing, JavaFX & SWT 10
H automatische Anzahl der Spalten ermitteln -> geht nicht AWT, Swing, JavaFX & SWT 6
C JavaFX Positionen auf dem Bildschirm ermitteln AWT, Swing, JavaFX & SWT 1
M Schnittpunkte zwischen zwei Graphics2D Elemente ermitteln. AWT, Swing, JavaFX & SWT 5
C TableModel zugehörige Table ermitteln AWT, Swing, JavaFX & SWT 3
C Größe des Mauszeigers ermitteln AWT, Swing, JavaFX & SWT 5
J JavaFX Länge von Line ermitteln AWT, Swing, JavaFX & SWT 9
M JavaFX Stage in einer FXML-Controllerklasse ermitteln? AWT, Swing, JavaFX & SWT 5
J Swing Letzten Tab einer JTabbedPane ermitteln AWT, Swing, JavaFX & SWT 6
hdi Swing JFrame Größe ermitteln AWT, Swing, JavaFX & SWT 6
hdi Shift Modifier zur Laufzeit ermitteln AWT, Swing, JavaFX & SWT 3
B Position in einem Bild ermitteln AWT, Swing, JavaFX & SWT 3
I Textbreite von Font inklusive Tabs ermitteln AWT, Swing, JavaFX & SWT 4
A Swing Alle Komponenten auf JFrame ermitteln AWT, Swing, JavaFX & SWT 4
B Label breite ermitteln vor dem rendern? AWT, Swing, JavaFX & SWT 7
G Applet, Link ermitteln, dem der Benutzer gefolgt ist AWT, Swing, JavaFX & SWT 2
C Caret Position mit X-Y-Koordinaten ermitteln AWT, Swing, JavaFX & SWT 2
C Swing Inhalt eines JPanels ermitteln & bearbeiten AWT, Swing, JavaFX & SWT 5
B aktuelle Position des Fensters ermitteln AWT, Swing, JavaFX & SWT 3
N Methode zum ermitteln der editierte Zeile/Zelle in jTable AWT, Swing, JavaFX & SWT 8
H Eltern-Frame von JPanel ermitteln AWT, Swing, JavaFX & SWT 2
C Ermitteln ob JComponent einen Listener besitzt AWT, Swing, JavaFX & SWT 2
S Swing JTree expandierte Pfade ermitteln AWT, Swing, JavaFX & SWT 6
S Swing Swing maximale Fenstergrösse ermitteln AWT, Swing, JavaFX & SWT 5
R Focus ermitteln AWT, Swing, JavaFX & SWT 2
ElViZ End-Position eines gezeichneten Strings ermitteln. AWT, Swing, JavaFX & SWT 2
H Name einer Komponente ermitteln AWT, Swing, JavaFX & SWT 5
F Pixelfarbe von Panel ermitteln AWT, Swing, JavaFX & SWT 14
R Suchbare Zeilen von JTable in JScrollPane ermitteln AWT, Swing, JavaFX & SWT 9
M Schriftgröße ermitteln AWT, Swing, JavaFX & SWT 7
T Button des Popup-Menüs ermitteln AWT, Swing, JavaFX & SWT 4
Iron Monkey JPopupMenu/JMenuItem Index für getSubElements()[] ermitteln AWT, Swing, JavaFX & SWT 8
D printdialog ausgewählten drucker ermitteln AWT, Swing, JavaFX & SWT 2
J absolute Position einer JComponent ermitteln AWT, Swing, JavaFX & SWT 4
R JScrollBar / JScrollPane: Ermitteln ob ganz unten AWT, Swing, JavaFX & SWT 2
F JScrollbar Verschiebung des Viewport ermitteln AWT, Swing, JavaFX & SWT 3
M Wirkliche Größe eines JPanels/o.ä. ermitteln AWT, Swing, JavaFX & SWT 3
S Parent eines Menu-Eintrages ermitteln? AWT, Swing, JavaFX & SWT 3
D Ergebnis des Listeners ermitteln AWT, Swing, JavaFX & SWT 8
K DefaultTableModel makierte Row ermitteln AWT, Swing, JavaFX & SWT 6
I font-größe ermitteln AWT, Swing, JavaFX & SWT 4
F Komponente der GUI ermitteln AWT, Swing, JavaFX & SWT 3
F Größe ermitteln AWT, Swing, JavaFX & SWT 3
P ID einer ausgewaehlten Node aus JTree ermitteln AWT, Swing, JavaFX & SWT 6
L Schnittpunkt von 2 Strecken ermitteln AWT, Swing, JavaFX & SWT 4
H Node neben dem Expand/Collapse Symbol ermitteln AWT, Swing, JavaFX & SWT 4
I Popup-Trigger-Maustaste gleich beim Programmstart ermitteln? AWT, Swing, JavaFX & SWT 7
S JPanel Größe ermitteln AWT, Swing, JavaFX & SWT 9
J Grösse eines Graphikobjektes ermitteln AWT, Swing, JavaFX & SWT 3
C SWT - Fontgröße des aktuellen Fonts ermitteln AWT, Swing, JavaFX & SWT 2
P Wie das Component Object des Hauptfensters ermitteln? AWT, Swing, JavaFX & SWT 4
G Klasse Image - Höhe und Breite ermitteln AWT, Swing, JavaFX & SWT 12
L TreePath eines Objektes innerhalb eines JTree ermitteln? AWT, Swing, JavaFX & SWT 1
K Höhe und Breite eines Panels im GridBagLayout ermitteln AWT, Swing, JavaFX & SWT 9
H Größe eines Fensters ermitteln AWT, Swing, JavaFX & SWT 13
javasdann JTable sichtbare Zeilen innerhalb von JScrollPane ermitteln AWT, Swing, JavaFX & SWT 5
K aktuellen Inhalt eines JPanels ermitteln AWT, Swing, JavaFX & SWT 3
T Name des Hauptframes ermitteln AWT, Swing, JavaFX & SWT 17
I JTextArea: Zeilennummer ermitteln AWT, Swing, JavaFX & SWT 4
N Toplevel-Fenster ermitteln AWT, Swing, JavaFX & SWT 13
L Größe (in Byte) eines Image ermitteln AWT, Swing, JavaFX & SWT 2
T Größe und Position eines JLabels ermitteln AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben