Задайте позиция на Caret с JTextArea в JScrollPane

В момента имам JTextArea вътре в JScrollPane. За текущото съдържание се показва както вертикална, така и хоризонтална лента за превъртане. Опитвам се да внедря функция за търсене, при която потребителят може да търси определен низ и тя ще зададе позицията на каретката на първото срещане на този низ. Въпреки това изглежда, че JScrollPane превърта само вертикално, когато задам позицията на каретката. Така че съвпадащите низове, излизащи от JTextArea хоризонтално, ще бъдат напълно пропуснати и хоризонталната лента за превъртане изобщо няма да се превърта.

Използвам основната функция setCaretPosition() за JTextArea

Някой има ли представа защо моят JScrollPane не се движи хоризонтално с помощта на setCaretPosition()

Редактиране:

Изглежда хоризонталната лента за превъртане се превърта, но се движи толкова малко, че едва се забелязва. Виждам само първия пиксел на героя. Има ли начин центърът на лентата за превъртане (или колкото е възможно повече) да е в позицията на каретката?


person Albinoswordfish    schedule 07.01.2011    source източник
comment
За по-добра помощ по-рано, публикувайте SSCCE (pscode.org/sscce.html), който демонстрира проблема. Или поне това, което имате досега.   -  person Andrew Thompson    schedule 08.01.2011


Отговори (1)


Трябва да можете да използвате Visible Caret Listener .

Или можете също да погледнете Централна линия в екрана за превъртане. Той само центрира линията вертикално, но можете да персонализирате кода да прави и хоризонтално.

person camickr    schedule 08.01.2011
comment
Съжалявам за късния отговор, тези примери помогнаха изключително много. - person Albinoswordfish; 11.01.2011