SWT Text разрывает строки в неправильной позиции - PullRequest
1 голос
/ 13 марта 2012

Примечание: эта проблема возникает только на Mac, в Windows работает нормально.

У меня есть виджет 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);

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

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

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

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

1 Ответ

2 голосов
/ 16 марта 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...