Hi Jason,
It's not exactly that. It's just that in the case of TextArea all
the real calculations happen as part of the painting code, so the bounds
of the last character don't calculate right unless we let the paint
happen before trying to get the bounds. Not all components are like
that. And I suppose, ideally, TextArea wouldn't be like that either,
but ....
HTH,
~Roger
On 12/6/12 9:49 PM, Jason Murray wrote:
Thank you very much, that works perfectly! So anything that is set
after it's painted requires a callback?
--Jason
On Tue, Dec 4, 2012 at 10:52 AM, Roger L. Whitcomb
<[email protected]> wrote:
Hi Jason,
The way we handle this case is to queue a callback that gets the
Bounds of the last character and calls "scrollAreaToVisible" with those
bounds. Like this:
ApplicationContext.queueCallback(new Runnable() {
@Override
public void run() {
Bounds bounds =
resultArea.getCharacterBounds(resultArea.getCharacterCount());
resultArea.scrollAreaToVisible(bounds);
}
});
The reason you have to do the queued callback is that the painting code is
what actually sets the bounds, and so the value is not available until the
repaint happens, and then the callback is invoked right after that.
HTH,
~Roger Whitcomb
-----Original Message-----
From: Jason Murray [mailto:[email protected]]
Sent: Saturday, December 01, 2012 8:29 PM
To: [email protected]
Subject: 2.0.2 How to move scroll bar to bottom of ScrollPane?
Right now, I have a TextArea set to refresh its text after the enter key
is pressed.
This works just fine, but the scroll bar of the ScrollPane that the
TextArea is in doesn't automatically scroll down to the bottom where
anything new would be.
Is there a method of ScrollPane that I could put inside an event listener
to do this?
--Jason