2012-03-13 3 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