How to automatically scroll a textbox to end of line?

4 ビュー (過去 30 日間)
Niko
Niko 2014 年 9 月 13 日
コメント済み: Geoff Hayes 2014 年 9 月 16 日
Hi all,
I'm trying to code a calculator, which has an inactive (non-editable) textbox used for display of the input. Is there a way to automatically scroll the textbox to the end when the input gets longer than the width of the textbox? (If it's impossible in matlab maybe there's some workaround in java?)
Thanks!
Niko

採用された回答

Geoff Hayes
Geoff Hayes 2014 年 9 月 13 日
Niko - if you go to the MATLAB File Exchange and download the submission findjobj and save this file somewhere in your MATLAB search path, then you can update your GUI with the following two lines of code that will set the caret to the end of the line in your edit box so that it creates the appearance of automatically scrolling to the end
% assume that the text box that has been updated with the user input is named
% text1
% after text1 has been updated, move the caret to the end of the line
jhText1 = findjobj(handles.text1);
jhText1.setCaretPosition(jhText1.getDocument.getLength);
I tried out the following by creating a simple GUI using GUIDE. (If you created your GUI in a different manner, then you will just have to replace handles.text1 with the handle to your non-editable text box.
The above worked in my version of MATLAB R2014a on OS X 10.8.5.
  4 件のコメント
Niko
Niko 2014 年 9 月 16 日
編集済み: Niko 2014 年 9 月 16 日
Hi Geoff,
I just solved the mystery - I put the setCaretPosition() call immediately after I changed the content of the textbox, which actually takes effect after setCaretPosition() is executed since it takes some time to run, and changing the content (from a function rather than manual input) seems to reset caret position to 0. So I added pause(0.01) before setCaretPosition and now it works. Thanks again for your help!
Niko
Geoff Hayes
Geoff Hayes 2014 年 9 月 16 日
Great that it worked out!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMigrate GUIDE Apps についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by