How to retain multiple occurrences of same string get selected within same styled text content?

StackOverflow https://stackoverflow.com/questions/23624053

  •  21-07-2023
  •  | 
  •  

Вопрос

How to retain multiple occurrences of same string get selected within same styled text content? Single occurrence can be selected using setSelection(). Is there any similar options?

Это было полезно?

Решение

Use StyleRange to set multiple occurrences of the string.

Snippet:

    String searchKey = "hello";
    String content = styledText.getText(); // StyledText instance
    int index = content.indexOf(searchKey, 0);
    do {
        if (index != -1) {
            StyleRange styleRange = new StyleRange(index, searchKey.length(), Display.getCurrent().getSystemColor(
                    SWT.COLOR_BLACK), Display.getCurrent().getSystemColor(SWT.COLOR_YELLOW));
            styledText.setStyleRange(styleRange);
            index = content.indexOf(searchKey, index + 1);
        } else {
            System.out.println("End of search");
            break;
        }

    } while (index != -1);

Refer this article an examples here on style ranges.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top