我在我的项目中使用 StyledText,其中我有很多文本可以根据某些事件具有不同的样式,有时这些样式可能会重叠,因此可以为已经设置的区域设置表示黄色背景颜色的样式具有红色前景色的 styleRange。
这是一个不代表闭源项目的代码示例:
text_1 = new StyledText(composite, SWT.BORDER);
text_1.setBounds(10, 10, 320, 21);
text_1.setText("1234567890abcdefghij");
text_1.setStyleRange(new StyleRange(0, 9, Display.getDefault().getSystemColor(SWT.COLOR_RED), null));
text_1.setStyleRange(new StyleRange(2, 9, null, Display.getDefault().getSystemColor(SWT.COLOR_YELLOW)));
text_1.setSelection(3, 7);
0-9的第一个样式是红色的前景色,2-9的第二个是黄色的背景,我得到的是只有0-1会有红色的前景色,而2-9会有带有黄色背景的黑色前景色,当我想要的是 2-9 同时具有红色前景和黄色背景时。
结果:
我希望它看起来像什么:
我的问题,我怎样才能使设置新的 styleRange 不会删除旧的样式范围或至少复制以前的特征,以防万一为空?
谢谢你。