2012-03-20 48 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);

此外,作爲一個側面說明 - 重用字體儘可能是很重要的,否則你會得到討厭的處理問題。