如何设置SWT标签填充?

时间:2010-08-31 14:24:03

标签: java layout swt jface

当我将文本分配给Labels时,它们会非常紧密地缠绕它,有时会将下边缘切掉'p','y'等。我想在文本和边框之间有一些填充。我正在为父Composite使用TableWrapLayout,为Labels使用TableWrapData

    TableWrapLayout layout = new TableWrapLayout();
    layout.numColumns = 2;
    layout.bottomMargin = 10;
    layout.topMargin = 10;
    client.setLayout(layout);

    Label label= toolkit.createLabel(client, "", SWT.NONE);

我们使用FormToolkit进行一致的设计,恕我直言,这对边框绘画没有影响

3 个答案:

答案 0 :(得分:3)

SWT中的布局(如GridLayout)和LayoutData(例如GridData)对象只能控制控件之外的间距(因此它们只能设置边距而不是填充)。要更改控制端本身,您只能使用setSize()setBound()

答案 1 :(得分:3)

(许多年后回答,但仍然是答案......)

CLabel cl = new CLabel(shell, SWT.CENTER);
int padding = 5;
cl.setMargins(padding, padding, padding, padding);

答案 2 :(得分:1)

Quoting my answer to a similar question:

  

我也在努力解决这个问题。 Label不支持填充。我改为使用StyledText

   final StyledText text = new StyledText(parent, SWT.WRAP);
   final int padding = 5;

   text.setLeftMargin(padding);
   text.setRightMargin(padding);
   text.setTopMargin(padding);
   text.setBottomMargin(padding);

   text.setWordWrap(true);
   text.setCaret(null);
     

这对我有用。