Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2013_1 / ООП / Введение_SWG.pdf
Скачиваний:
82
Добавлен:
23.02.2015
Размер:
3.32 Mб
Скачать

b.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, true, true, 1, 1));

shell.open ();

while (!shell.isDisposed ()) {

if (!display.readAndDispatch ()) display.sleep();

}

display.dispose();

}

}

3.4 Класс RowLayout

java.lang.Object

org.eclipse.swt.widgets.Layout

org.eclipse.swt.layout.RowLayout

Объекты этого класса (таблица 3.5) определяют размер и позицию дочерних элементов окна в горизонтальной или вертикальной колонке в пределах родителя. У него есть способность обертывать, обеспечивать перестраиваемые поля и промежутки. RowLayout имеет множество конфигурационных полей. Кроме того, высота и ширина каждого элемента управления в RowLayout могут быть определены установкой объекта RowData с использованием метода setLayoutData().

Следующий код создает RowLayout, устанавливает все поля в новое значение, затем подключает его в оболочку.

RowLayout rowLayout = new RowLayout(); rowLayout.wrap = false; rowLayout.pack = false; rowLayout.justify = true; rowLayout.type = SWT.VERTICAL; rowLayout.marginLeft = 5; rowLayout.marginTop = 5; rowLayout.marginRight = 5; rowLayout.marginBottom = 5; rowLayout.spacing = 0; shell.setLayout(rowLayout);

92

Таблица 3.5 – Методы компонентов класса RowLayout Обзор полей

boolean fill – Определяет полное заполнение пространства родителя элементами формы

93

boolean

justify – Определяет дополнительные промежутки между

 

элементами управления

 

 

int

marginBottom – Количество пикселей отступа снизу вдоль нижней

 

границы формата

int

marginHeight – Количество пикселей отступа сверху и снизу вдоль

 

границы формата

int

marginLeft – Количество пикселей отступа слева, которое будет

 

установлено вдоль границы формата

int

marginRight – Количество пикселей отступа справа, которое будет

 

установлено вдоль границы формата

int

marginTop – Количество пикселей отступа сверху, которое будет

 

установлено вдоль границы формата

int

marginWidth – Количество пикселей отступа с боков, которое

 

будет установлено вдоль границы формата

boolean

pack – Упаковка предполагает, что все элементы управления будут

 

иметь предпочтительный размер

int

spacing – Количество пикселей между краем одной ячейки и краем

 

соседней ячейки

int

type – Задает горизонтальное или вертикальное размещение

 

элементов

boolean

wrap – Определяет перенос элементов управления в следующую

 

колонку если недостаточно пространства в текущей колонке

Конструкторы класса

RowLayout() – Создает экземпляр класса

RowLayout(int type) – Создает экземпляр класса заданного типа

 

Методы

protected

computeSize(Composite composite, int wHint, int hHint, boolean

Point

flushCache) – Вычисляет и возвращает размер заданной составной

 

области клиента соответствующей этому формату

protected

flushCache(Control control) – Сбрасывать кеш, связанный с

boolean

заданным элементом управления

protected

layout(Composite composite, boolean flushCache) – Укладывать

void

дочерние элементы окна согласно этому формату.

String

toString() – Преобразовать в строковое представление

94

Пример.

Display display = new Display();

Shell shell = new Shell(display);

RowLayout layout = new RowLayout(SWT.HORIZONTAL); layout.wrap = true;

layout.fill = false; layout.justify = true; shell.setLayout(layout);

Button b = new Button(shell, SWT.PUSH); b.setText("Button 1");

b = new Button(shell, SWT.PUSH); b.setText("Button 2");

b = new Button(shell, SWT.PUSH); b.setText("Button 3");

b = new Button(shell, SWT.PUSH); b.setText("Not shown"); b.setVisible(false);

RowData data = new RowData(); data.exclude = true; b.setLayoutData(data);

b = new Button(shell, SWT.PUSH); b.setText("Button 200 high"); data = new RowData(); data.height = 200; b.setLayoutData(data);

b = new Button(shell, SWT.PUSH); b.setText("Button 200 wide");

Рисунок 3.2 – Пример размещения элементов data = new RowData();

data.width = 200; b.setLayoutData(data); shell.pack(); shell.open();

95

Соседние файлы в папке ООП