DarthShader
Erfahrenes Mitglied
Hallo,
ich habe eine JScrollPane, darin ein JPanel, welches ich mit weiteren Componenten dynamisch fülle. Da ich eben dieses Panel fülle, taucht irgendwann die vertikale Scrollleiste vom JScrollPane auf, das ist natürlich klar und soll auch so sein, damit ich den Inhalt nach unten scrollen kann.
Was ich nun aber erreichen möchte, ist das programmiertechnische, also automatische scrollen bis ans Ende (unten), damit alle neu hinzugefügten Komponenten sofort sichtbar sind (ähnlich einem Chatfenster, das auch automatisch nach unten scrollt).
Dies bekomme ich jedoch einfach nicht hin. Ich habe es bisher so versucht, genau nachdem ich eine Komponente dem Panel hinzugefügt habe, und damit auch die vertikale Scrollbar aufgetaucht ist:
Leider funktioniert es so nicht. Die scrollbar scrollt zunächst gar nicht, wenn dann mehr Komponenten hinzu kommen und damit vsb.getMaximum() immer größer wird, scroll die Bar ein kleines Stückchen nach unten, aber auf keinen Fall ganz. Ich kann nicht nachvollziehen, was da passiert.
Ist mein Ansatz, zu scrollen, falsch? Habe ich irgendetwas vergessen, oder macht man es gänzlich anders?
Ich würde mich über Hilfe sehr freuen
Vielen Dank!
ich habe eine JScrollPane, darin ein JPanel, welches ich mit weiteren Componenten dynamisch fülle. Da ich eben dieses Panel fülle, taucht irgendwann die vertikale Scrollleiste vom JScrollPane auf, das ist natürlich klar und soll auch so sein, damit ich den Inhalt nach unten scrollen kann.
Was ich nun aber erreichen möchte, ist das programmiertechnische, also automatische scrollen bis ans Ende (unten), damit alle neu hinzugefügten Komponenten sofort sichtbar sind (ähnlich einem Chatfenster, das auch automatisch nach unten scrollt).
Dies bekomme ich jedoch einfach nicht hin. Ich habe es bisher so versucht, genau nachdem ich eine Komponente dem Panel hinzugefügt habe, und damit auch die vertikale Scrollbar aufgetaucht ist:
Java:
// Referenz auf das scrollbar objekt holen
JScrollBar vsb = jScrollPane1.getVerticalScrollBar();
// Zum debuggen die aktuellen werte der scrollbar ausgeben
System.out.println( "current: " + vsb.getValue() );
System.out.println( "max: " + vsb.getMaximum() );
System.out.println( "extent: " + vsb.getVisibleAmount() );
// Versuchen, ganz nach unten zu scrollen:
vsb.setValue( vsb.getMaximum() - vsb.getVisibleAmount() );
Leider funktioniert es so nicht. Die scrollbar scrollt zunächst gar nicht, wenn dann mehr Komponenten hinzu kommen und damit vsb.getMaximum() immer größer wird, scroll die Bar ein kleines Stückchen nach unten, aber auf keinen Fall ganz. Ich kann nicht nachvollziehen, was da passiert.
Ist mein Ansatz, zu scrollen, falsch? Habe ich irgendetwas vergessen, oder macht man es gänzlich anders?
Ich würde mich über Hilfe sehr freuen
Vielen Dank!