1
我需要創建一個SWT StyledText控件,它爲每個字符顯示等間距的人類可讀字符,就像我們在「記事本」中看到的一樣。Eclipse SWT GUI - StyledText控制 - 每個字符的寬度相等
但是,當我創建文本
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個空格的'^'來指向它時(注意:此示例中的句點將是它被我的原始輸出中的空格替換),它指向字符串中的不同位置。
但是請記得'處理(')'字體'。否則,你會創建一個內存泄漏。 – Baz
謝謝,添加您對該帖子的評論。 – sina72
感謝您的回答。但不幸的是,SWT並沒有採取它,仍然顯示沒有單聲道間距的文字。 [一個stackoverflow答案](http://stackoverflow.com/questions/221568/swt-os-agnostic-way-to-get-monospaced-font)有一個指向這個錯誤[48055](https:// bugs.eclipse.org/bugs/show_bug.cgi?id=48055)描述了這種行爲。由於我的SWT應用程序總是在Windows上運行,因此我計劃使用「Courier New」作爲等寬字體。 – Parasu