1

我试图强迫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);

和我创建 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 这样的方法?

4

1 回答 1

0

在您的createDisabledText方法中,尝试将SWT.WRAP样式传递给StyledText构造函数。

StyledText t = new StyledText(parent, SWT.SHADOW_NONE | SWT.WRAP);
于 2013-08-24T02:27:16.090 回答