JScrollbar attribute ändern

Belini

Grünschnabel
Hallo Zusammen,

ich habe eine Datenbankanwendung in der ich nur immer die ersten 100 Datensätze einer DB-Tabelle in meine JTable lade und auf Bedarf (Scrollen) nachlade. Zugleich ermittle ich aber die Gesamtzahl der DB-Einträge und zeige die in einer Statuszeile an.
Nun ist es so, dass der vertikale Scrollbalken aufgrund des Ladevorgangs immer eine einheitliche Größe hat und erst aufgrund des Nachladens die Größe den Einträgen anpasst.
Wenig Einträge = großer Balken, Viele Einträge = kleiner Balken.
Da mir die Anzahl der Einträge bekannt ist, möchte ich gerne von vornherein die Relation der Scrollbalkengrösse zu der Gesamtzahl der Einträge abbilden.

Ich habe das wie folgt, mit mäßigem Erfolg, versucht:
JScrollBar vsb = scrPanel.getVerticalScrollBar();
vsb.setValues(value, extent, 0, max);

Ergebnis: Die Änderung von extend ht keinerlei Auswirkung. Die Änderung von value hat eine begrenzte Auswirkung auf die Position und die Größe des Scrollbalken, wobei auch damit die tatsächliche Relation nicht abgebildet werden kann.

Wer kann mir weiterhelfen?

Vielen Dank im Voraus
Belini
 
Hallo,

das ist ein wenig knifflig. Eine Möglichkeit wäre einen BorderLayout verwenden. Im Zentrum die JScrollPane mit der JTable und Rechts eine weitere eigene JScrollBar. Die Scrollbalken der ScrollPane solltest du unsichtbar machen. Die Werte für die ScrollBar kannst du nach belieben geben. Jetzt müsstest du es irgendwie noch per Listener schaffen das wenn du die ScrollBar tätigst die JScrollPane entsprechend skrollt.

Eine andere Idee wäre, das du die JTable mit leeren Zeilen auffülst.


Vg Erdal
 
Hallo Erdal,

zunächstmal vielen Dank für Deine Unterstützung. Leider komme ich damit nicht zur Lösung.
Ich hätte erwartet, dass die JScrollBar über ein Attribut verfügt, über das ich die Größe relativ einfach anpassen kann.
Der von Dir beschriebene Lösungsandsatz ist mir kurzfristig zu aufwendig, da ich mit einer neueren Java-Version (aktuell 1.3) uf die einfache Möglichkeit hoffe.

Vielen Dank und beste Grüße
Belini
 
Hallo Belini,

wie wärs mit einem JSpinner. Gästebücher haben ja, viele viele Einträge, sie zeigen aber nur jeweils 10 oder 15 Einträge und bieten eine Blätterfunktionalität.

Genau das könntest du hier auch nachbilden.

Beispielsweise du hast 3000 Zeilen Daten. Zeigst pro Seite 100 an. Das wären dann 30 Seiten. Per JSpinner könntest du hin und her Blättern oder wahlweise eine bestimmte Seite anzeigen.

Wie man aber doch das JScrollPane nach deinem Wunsch modifizieren könnte wüsste ich jetzt nicht.


Vg Erdal
 
Zurück