В LWUIT, как программно установить "TextArea's Scroll" обратно наверх, после его перемещения вниз?
Используя LWUIT, у меня есть Form
с двумя компонентами: только для чтения TextArea
и Button
:
TextArea text = new TextArea("blah blah blah blah blah blah blah blah blah ...");
text.setEditable(false);
form.addComponent(text);
Button button = new Button("Press Me !");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// DESIRED CODE IS HERE ...
}
});
form.addComponent(button);
TextArea
имеет Scrollbar
потому что он содержит длинный String
когда пользователь двигается DOWN
TextArea
"s Scrollbar
движется вниз, пока не достигнет конца String
тогда Button
сфокусироваться, оставляя TextArea
"s Scrollbar
в конце TextArea
,
Я хочу это, когда Button
при нажатии на полосу прокрутки возвращается в исходное состояние в Top
из TextArea
вместо того, чтобы быть в Bottom
из TextArea
, Как я мог это сделать?
1 ответ
Решение
Вот решение для тех, кто заинтересован.
с помощью пользовательского TextArea
public class CustomTextArea extends TextArea {
public TextAreaScrollControlled(String text) {
super(text);
}
public void resetScrollBackToTop() {
setScrollY(0);
}
}
Тогда код следующий (вместо того, который был опубликован в вопросе):
CustomTextArea text = new CustomTextArea("blah blah blah blah blah blah ...");
text.setEditable(false);
addComponent(text);
Button button = new Button("Press Me !");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
text.resetScrollBackToTop(); // SOLUTION
}
});
form.addComponent(button);
PS. "Текст" должен быть окончательным или членом класса;)