2012-03-13 3 views
1

Примечание. Эта проблема возникает только на Mac, на Windows работает нормально.Текст SWT разрывает линии в неправильном положении

У меня есть текстовый виджет SWT, в который я хочу добавить довольно большой текст.

//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); 

Вопрос заключается в том, что, хотя есть слишком много места (880px), текст разбивается где-то на 400px, если есть больше чем два «\ т» (закладка) символов в строке. При записи в текстовое поле с «" (пробелом) строка продолжается так, как должна, и не завершается.

Вывод строки в консоль показывает, что это нормально, поэтому я не думаю, что проблема находится в строке, а скорее в элементе управления Text.

Я пробовал все, что мог придумать, и не повезло в его решении.

Любая помощь приветствуется.

ответ

2

Виджеты SWT нарисованы изначально ОС - это своего рода точка этой библиотеки. Именно поэтому ОС-специфические причуды «сохранены».

Но пока Text нарисовано изначально, StyledText нет, оно нарисовано «вручную» SWT, чтобы обеспечить расширенные функции для всех поддерживаемых платформ.

Так что вы можете попробовать StyledText вместо этого - да, это только обходное решение и имеет теоретические недостатки неродного виджета, такие как более низкая производительность, различное поведение и т. Д., Но, скорее всего, вы не будете обратите внимание на разницу. Но если вам повезет, он исправляет вашу проблему.

+0

Только через 5 минут после того, как я разместил вопрос, я попробовал с помощью 'StyledText', и это было решением. У меня недостаточно репутации, чтобы отвечать на мои вопросы без ожидания, поэтому я принимаю ваш ответ :) – ekstrakt

Смежные вопросы