2012-03-20 44 views
0

我有一个SWT应用程序一个StyledText小部件格式的文本,像这样:SWT StyledText部件 - 空白符绘画

Type     -> Text 
MessageID   -> ID:205871803-172.30.227.122(89:ab:da:58:b9:f3)-32849-1332173293715 
CorrelationIDAsBytes -> [[email protected] 
Expiration   -> 0 
Priority    -> 4 
Timestamp   -> 1332173293715 
Redelivered   -> false 

然而,这是它最终看起来像: SWT StyledText Weird Whitespace

有我可以打开一些选项,使它显示“原样”的空白?

我尝试添加一些风格,它得到它看的权利,但它仍然不能正常工作:

 _messageDataText.addLineStyleListener(new LineStyleListener() { 
      public void lineGetStyle(final LineStyleEvent lineStyleEvent) { 
       StyleRange styleRange = new StyleRange(); 
       styleRange.start = 0; 
       styleRange.length = _messageDataText.getText().length(); 
       styleRange.font = new Font(Display.getCurrent(), "Arial", 12, SWT.NORMAL); 
       lineStyleEvent.styles = new StyleRange[] { 
        styleRange }; 
      } 
     }); 

回答

3

显然,这取决于字体。如果您使用“Courier New”,请将空白符合正确。

这是我改变:

styleRange.font = new Font(Display.getCurrent(), "Courier New", 10, SWT.NORMAL);

此外,作为一个侧面说明 - 重用字体尽可能是很重要的,否则你会得到讨厌的处理问题。