Eclipse SWT GUI - StyledText控件 - 每个字符的宽度相等

时间:2014-06-23 08:25:25

标签: java fonts swt spacing

我需要创建一个SWT StyledText控件,它显示每个字符具有相等间距的人类可读字符,就像我们在“记事本”中看到的那样。

但是当我创建一个Text


    StyledText outputText = new StyledText(scrolledComposite_2, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    scrolledComposite_2.setContent(outputText);
    scrolledComposite_2.setMinSize(outputText.computeSize(SWT.DEFAULT, SWT.DEFAULT));
    outputText.setText(data.toString());
    outputText.setStyleRange(new StyleRange(0, data.toString().length(), CMFUtils.GREEN, CMFUtils.WHITE));

当显示StyledText时显示数据,但每个字符的宽度不同。例如,'i'或''(空格)的宽度小于其他字符,如'S',这会导致我在下一行使用'^'指向错误字符时出现问题。例如:

输出>>>>
夸夸其谈-blah-的 sdlfk -blah
................ ^

正如您所看到的,上面示例字符串中的错误发生在第16个字符的“sdlfk”处,当我尝试通过在下一行中放置一个带有16个空格的“^”来指向它时(注意:句点)在这个例子中将被原始输出中的空格替换),它指向字符串中的不同位置。

1 个答案:

答案 0 :(得分:2)

使用等宽的SWT字体。

Font font = new Font(display, "Monospaced", 12, SWT.NORMAL);
outputText.setFont(font);
// ...
// In SWT: if you created it, you dispose it.
font.dispose();