1

LWUITを使用するFormと、読み取り専用TextAreaButton:の2つのコンポーネントがあります。

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ているため、ユーザーが' sを下に移動して、の終わりに達すると、フォーカスを取得して'sをの終わりに残します。をクリックすると、スクロールバーがのではなく、の元の状態に戻るようにします。どうすればこれを行うことができますか?ScrollbarStringDOWNTextAreaScrollbarStringButtonTextAreaScrollbarTextArea

ButtonTopTextAreaBottomTextArea

4

1 に答える 1

2

これが興味のある人のための解決策です。
カスタム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。「テキスト」はfinalまたはクラスのメンバーである必要があります;)

于 2012-01-02T16:43:36.430 に答える