Neu eingefügten Datensatz in JTable anzeigen

MarkusG

Mitglied
Hallo alle zusammen,

wenn ich meiner JTable einen Datensatz hinzufüge ist die letzte (hinzugefügte) Zeile immer erst dann sichtbar wenn ich nach unten scrolle. Wie kann ich meiner JTable sagen, dass sie nachdem ich den Button "neuen Datensatz anlegen" gedrückt habe zu diesem Datensatz "springen" soll? In meinem Fall ist der neu angelegte Datensatz immer der letzte der Tabelle.

Vielen Dank für die Hilfe.

Mfg. Markus
 
Vorübergehend habe ich es nicht sehr elegant gelöst...

jScrollPane1.getViewport().setViewPosition(new Point(0, 10000));

Diese Zeile setzt die Ansicht der ScrollPane um 10000 Pixel nach unten...

Wenn jemand eine andere, etwas elegantere Lösung weiß und diese hier vorstellt, bin ich ihm/ihr sehr dankbar.

Mfg. Markus
 
Hallo!

Du könntest doch nach dem Einfügen anhand des TableModels die Anzahl der Zeilen ermitteln und danach diese mit getRowHeight() Multiplizieren und dann wie du's schon gemacht hast übr setViewPort.... die Zeile sichtbar machen.

HTH
Gruß Tom
 
Ja ist feiner als meine erste Variante :), danke.

Ich habe allerdings gerade eine andere Möglichkeit gefunden.

jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());

Ich hole mir den maximalen Wert meiner vertikalen Scrollbar und setzte diesen als aktuellen Scrollbarwert.

Ein Problem habe ich allerdings noch. Wenn ich einen neuen Datensatz einfüge, springt die Scrollbar zwar nach unten, allerdings nur bis zur ehemaligen letzten Zeile. Sprich es wird die vorletzte Zeile als unterste Zeile angezeigt. Obwohl meine oben aufgeführte Anweisung die Letzte der Methode ist. Sprich die Zeile wird zuvor eingefügt. Kann das sein dass das Scrollpanel usw. zu spät neu gezeichnet wird und der maximale Wert der vertikalen Scrollbar sich auf die alte UI-Darstellung bezieht?

Weiß jemand wie ich der Scrollpane sagen kann, dass sie sich zuerst updatet?

Mfg. markus
 

Neue Beiträge

Zurück