Получение видимого текста в JEditorPane - PullRequest
1 голос
/ 07 января 2011

У меня есть JeditorPane в JScrollPane. В определенных точках приложения я хотел бы получить текст, который отображается в scrollPane (текст, который отображается в данный момент), и только этот текст. Есть ли способ сделать это?

Спасибо,

Эллиот

1 Ответ

6 голосов
/ 07 января 2011

Вы можете использовать область просмотра, чтобы получить позицию и размер вида.

JViewport viewport = scrollPane.getViewport();
Point startPoint = viewport.getViewPosition();
Dimension size = viewport.getExtentSize();
Point endPoint = new Point(startPoint.x + size.width, startPoint.y + size.height);

Как только вы знаете начальную / конечную точки области просмотра, вы можете использовать:

int start = editorPane.viewToModel( startPoint );
int end = editorPane.viewToModel( endPoint );

Когда вы знаете смещения текста, который вы хотите, вы можете получить текст изкомпонент:

String text = editorPane.getText(start, end - start);

Ни один из кодов не проверен.

...