2012-03-13 17 views
1

注:この問題はMacでは発生しますが、Windowsでは問題ありません。SWTテキストが間違った位置に折れて表示される

かなり大きなテキストを挿入したいSWT Textウィジェットがあります。

//simplified large string from StringBuilder 
String something=""; 
for(int i=0;i<10;i++){ 
    something += smp1+"\t"+smp2+"\t"+smp3+"\n"; 
} 

final Text text = new Text(shell, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); 
text.setBounds(10, 50, 880, 280); 
text.setText(something); 

問題は、あまりにも多くのスペースがあるもののラインで二つ以上の「\ tの」(タブ)の文字がある場合、(880px)、テキストが400ピクセル上のどこか壊れていることです。 ""(スペース)でテキストボックスに書き込むとき、行は必要な通りに続き、折り返されません。

文字列をコンソールに出力すると問題はないので、問題は文字列内ではなく、テキストコントロール内にあると思います。

私は考えることができるすべてを試みましたが、それを解決するには運がありません。

何か助けていただければ幸いです。

答えて

2

SWTのウィジェットはOSによってネイティブに描画されます。つまり、このライブラリのポイントのようなものです。 そのため、OS固有の特徴は「保存されています」。

Textがネイティブに描画されていますが、StyledTextではなく、サポートされているすべてのプラットフォームで高度な機能を提供するためにSWTが手作業で描いています。

代わりに、StyledTextを試してみるといいかもしれませんが、これは回避策に過ぎず、パフォーマンスの低下、さまざまな動作のような非ネイティブウィジェットの理論的な欠点がありますが、差異に気づく。しかし、あなたが運が良ければ、それはあなたの問題を解決します。

+0

質問を投稿してからわずか5分後に、私は 'StyledText'を試してみました。それが解決策でした。私は待たずに自分の質問に答えるのに十分な評判がないので、私はあなたの答えを受け入れています:) – ekstrakt

関連する問題