Passing the StyleRanges at once reduces the amount of flashing as the StyledText repaints.
import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class StyleRangeSetArray { public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); final StyledText styledText = new StyledText(shell, SWT.V_SCROLL | SWT.BORDER); styledText.setText("asdfasdfasdfasdf12345678910234567890"); StyleRange[] ranges = new StyleRange[2]; ranges[0] = new StyleRange(0, 3, display.getSystemColor(SWT.COLOR_GREEN), null); ranges[1] = new StyleRange(3, 6, display.getSystemColor(SWT.COLOR_BLUE), null); styledText.setStyleRanges(ranges); styledText.setBounds(10, 10, 500, 100); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } }
17.43.StyledText Style | ||||
17.43.1. | Using StyleRanges | |||
17.43.2. | StyleRange Constructors | |||
17.43.3. | Compare StyleRange | |||
17.43.4. | Set a single StyleRange into a StyledText | |||
17.43.5. | Set two Different styles | |||
17.43.6. | Store StyleRanges into an array, and called setStyleRanges() | |||
17.43.7. | replaceStyleRanges(): specifies which portion of the StyledText to repaint | |||
17.43.8. | Dynamic syntax coloring | |||
17.43.9. | Make Text Bold | |||
17.43.10. | Make text appear underlined | |||
17.43.11. | Use rise and font with StyleRange | |||
17.43.12. | Change the background | |||
17.43.13. | Change the Foreground color | |||
17.43.14. | Make text appear strikeout | |||
17.43.15. | StyledText: set line background | |||
17.43.16. | Using LineBackgroundListener |