У меня есть класс, основанный на Composite
, который включает экземпляр SWT List
. Используя настройки по умолчанию, список содержит пять строк в моей системе WinXP. Не полагаясь на жестко закодированные значения пикселей или параметры DPI и т. П., Как я могу установить высоту списка (и окружающего композита) на фиксированное количество строк, скажем 3, без каких-либо добавленных внутренних полей?Как установить высоту SWT List в строках?
public FileSetBox(Composite parent, int style)
{
super(parent, style);
setLayout(new FillLayout());
this.list = new List(this, SWT.V_SCROLL);
...
}
Update:
следующие работы, но она не принимает во внимание высоты добавленной границы, что приводит к частям последней строки прикрываясь. Любые идеи, как рассчитать это тоже?
public FileSetBox(Composite parent, int style)
{
...
GC gc = new GC(this);
gc.setFont(this.list.getFont());
this.preferredHeight = gc.getFontMetrics().getHeight() * 3;
gc.dispose();
...
}
@Override
public Point computeSize(int arg0, int arg1)
{
Point size = super.computeSize(arg0, arg1);
return new Point(size.x, this.preferredHeight);
}
Глупо мне ... это было настолько очевидно, что я его не замечал. Большое спасибо :-) –