JScrollPane automatisch auf unterste Zeile fokusieren

AusSpeyer

Grünschnabel
Hallo erst einmal, da ich ja neu hier bin.

ich habe eine Frage im Bereich Java/Swing.

Und zwar habe ich eine JTextArea in einem JScrollPane. Diese Textarea wird von außen mit Text befüllt und wächst sehr schnell über die angezeigten Zeilen hinaus, was aber auch beabsichtigt ist.

Was ich nun versuche, ist dafür zu sorgen, dass automatisch immer die unterste (also die gerade zuletzt hinzugefügte) Zeile fokusiert wird, also das Scrollpanel quasi immer automatisch mit nach unten scrollt, wenn neue Zeilen hinzukommen.

Danke im voraus für jede Form von Hilfestellung.
 
Ich bin mir nicht sicher, ob du wirklich alles brauchst, was ich dir nachfolgend aufzeige, aber dennoch:

1. Den Cursor deiner TextArea nach unten setzen:
setCaretPosition
public void setCaretPosition(int position)Sets the position of the text insertion caret for the TextComponent. Note that the caret tracks change, so this may move if the underlying text of the component is changed. If the document is null, does nothing. The position must be between 0 and the length of the component's text or else an exception is thrown.

Parameters:
position - the position
Throws:
IllegalArgumentException - if the value supplied for position is less than zero or greater than the component's text length

Dazu müsstest du dir natürlich noch die Länge des Textes holen, aber das ist für dich sicher kein Problem :)

2. Die ScrollBar nach unten scrollen:
JScrollBar getVerticalScrollBar()
Returns the vertical scroll bar that controls the viewports vertical view position.

-->

void setValue(int value)
Sets the scrollbar's value.
Value entspricht der Position des Schiebers

int getMaximum()
The maximum value of the scrollbar is maximum - extent.
Maximum entspricht dem maximalen Wert.

int getVisibleAmount()
Returns the scrollbar's extent, aka its "visibleAmount".
Ich glaube das entspricht der Länge des Schiebers.

Wie du diese Werte schließlich verwenden müsstest, kannst du dir ja sicherlich auch selbst denken :)
 

Neue Beiträge

Zurück