Как заставить StyledText сломать строку в SWT

Я пытаюсь заставить StyledText линию, но эффекты безнадежны. Вместо этого он расширяет размер моей оболочки до ширины самой большой линии.

Я пытаюсь достичь этого, создав класс, который расширяет оболочку

Мой конструктор

super(SWT.ON_TOP | SWT.NO_TRIM | SWT.NO_FOCUS | SWT.NO_SCROLL);
 FillLayout layout = new FillLayout();
 layout.marginHeight = 1;
 layout.marginWidth = 1;
 setLayout(layout);

 mForm = new ManagedForm(this);
 FormToolkit toolkit = mForm.getToolkit();
 body = mForm.getForm().getBody();

 FillLayout layout2 = new FillLayout();
 layout2.spacing = 2;
 body.setLayout(layout2);

 body = toolkit.createComposite(body, SWT.BORDER );

И когда я хочу вставить и показать текст. Я делаю это так

String text = 
 body = mForm.getToolkit().createComposite(parent, SWT.BORDER);
 GridLayout l = new GridLayout();
 l.marginHeight = 0;
 l.marginWidth = 1;

 body.setLayout(l); 

 StyledText bodyText = createDisabledText(body, text);

 mForm.getForm().getContent().pack(); 
 mForm.getForm().reflow(true);
 pack();

 setVisible(true);

и мой create disabledText:

private StyledText createDisabledText(Composite parent, String value)
{
 StyledText t = new StyledText(parent, SWT.SHADOW_NONE);
 t.setText(value);
 t.setEditable(false);
 t.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
 return t;
}

Все в классе, который расширяет оболочку. Что я делаю неправильно или есть метод вроде set maxSize?

1 ответ

В методе createDisabledText попробуйте SWT.WRAP стиль StyledText конструктору StyledText.

StyledText t = new StyledText(parent, SWT.SHADOW_NONE | SWT.WRAP);

licensed under cc by-sa 3.0 with attribution.