2012-01-02 124 views
1

使用LWUIT,我有一個Form由兩部分組成:一個只讀TextAreaButton在LWUIT中,如何以編程方式將「TextArea的滾動」設置回頂部?

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); 

TextAreaScrollbar,因爲它包含一個長String,當用戶移動DOWNTextAreaScrollbar向下移動直至到達String的末尾,然後Button得到聚焦,在TextArea的末尾,離開TextAreaScrollbar

我想要的是,點擊Button時,滾動條會在TextAreaTop中返回到其原始狀態,而不是在TextAreaBottom中。 我該怎麼做?

+2

這篇文章可能會幫助你http://stackoverflow.com/questions/7484720/lwuit-scrolling – frayab 2012-01-02 16:10:03

+0

這解決了這個問題,謝謝!我會爲任何有相同問題的人發佈答案,以便爲以後的搜索發佈 – 2012-01-02 16:39:40

回答

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。 「文本」應該是最終的或類的成員;)

+1

太棒了!我會盡力做到這一點! – Mun0n 2012-01-02 19:37:38

+0

scrollRectToVisible(0,0,10,10)也應該起作用,並且在我記得的情況下它是公開的 – 2012-01-05 13:06:34

相關問題