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

3.3 Класс GridData

java.lang.Object

org.eclipse.swt.layout.GridData

GridData – объект данных макета (таблица 3.4), связанный с GridLayout. Чтобы устанавливать объект GridData для элемента используется метод Control.setLayoutData(Объект).

Есть два пути создать объект GridData с заданными параметрами. Вопервых, можно установить поля непосредственно, подобно:

GridData gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; button1.setLayoutData(gridData);

Во-вторых, можно задать параметры в конструкторе GridData:

button1.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL |

GridData.GRAB_HORIZONTAL));

ПРИМЕЧАНИЕ: не используйте многократно объекты GridData. Каждый элемент управления окна должен иметь уникальный объект GridData. Если данные макета для управления в GridLayout не заданы во время форматирования, то для него будет создан уникальный объект GridData.

Таблица 3.4 – Методы компонентов класса GridData

Поля

static int BEGINNING – Значение для horizontalAlignment или verticalAlignment

static int

CENTER – Значение для horizontalAlignment или verticalAlignment.

static int

END – Значение для horizontalAlignment или verticalAlignment

boolean

exclude – исключить информирование макета, чтобы игнорировать

 

этот элемент управления при калибровке и позиционировании

 

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

static int

FILL – Значение для horizontalAlignment или verticalAlignment

static int

FILL_BOTH – Бит Стиля для нового GridData(int), чтобы изменять

 

размеры элемента для заполнения ячейки по горизонтали и

 

вертикали и заполнять остальное горизонтальное и вертикальное

 

пространство

static int

FILL_HORIZONTAL – Бит Стиля для нового GridData(int), чтобы

88

 

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

 

и заполнять остальное горизонтальное пространство

 

 

static int

FILL_VERTICAL – Бит Стиля для нового GridData(int), чтобы

 

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

 

заполнять остальное вертикальное пространство

static int

GRAB_HORIZONTAL – Бит Стиля для нового GridData(int), чтобы

 

менять размеры элемента для заполнения остального

 

горизонтального пространства

static int

GRAB_VERTICAL – Бит Стиля для нового GridData(int), чтобы

 

менять размеры элемента для заполнения остального вертикального

 

пространства

boolean

grabExcessHorizontalSpace – изменять ширину ячейки в зависимости

 

от размера родительского окна

boolean

grabExcessVerticalSpace – изменять высоту ячейки в зависимости от

 

размера родительского окна

int

heightHint – определяет предпочтительную высоту подсказки в

 

пикселях

static int

HORIZONTAL_ALIGN_BEGINNING – Бит Стиля для нового

 

GridData(int) для позиции элемента слева

static int

HORIZONTAL_ALIGN_CENTER – Бит Стиля для нового

 

GridData(int) для позиции элемента по центру

static int

HORIZONTAL_ALIGN_END – Бит Стиля для нового GridData(int)

 

для позиции элемента справа

static int

HORIZONTAL_ALIGN_FILL – Бит Стиля для нового GridData(int)

 

для позиции элемента по ширине клетки

int

horizontalAlignment – Определяет что элементы управления

 

выравниваются горизонтально в пределах ячейки:

 

SWT.BEGINNING (или SWT.TOP), SWT.CENTER, SWT.END (или

 

SWT.BOTTOM), SWT.FILL

int

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

 

установлен у левой стороны ячейки

int

horizontalSpan –количество ячеек занимаемых элементом

 

управления

int

minimumHeight – минимальная высота в пикселях

 

 

int

minimumWidth – минимальная ширина в пикселях

static int

VERTICAL_ALIGN_BEGINNING – Бит стиля для нового

89

 

GridData(int)

static int

VERTICAL_ALIGN_CENTER – Бит Стиля для нового GridData(int)

 

для выравнивания в центре по вертикали

static int

VERTICAL_ALIGN_END – Бит Стиля для нового GridData(int) для

 

выравнивания вниз по вертикали

static int

VERTICAL_ALIGN_FILL – Бит Стиля для нового GridData(int) для

 

заполнения ячейки по вертикали

int

verticalAlignment – задание вертикального выравнивания

 

(аналогичны horizontalAlignment)

int

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

 

установлен вдоль верхней стороны ячейки

int

verticalSpan – количество ячеек колонки, занимаемых элементом.

int

widthHint – ширина подсказки

 

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

 

 

GridData() – создание экземпляра со значениями по умолчанию

GridData(int style) – создание экземпляра с заданным стилем

GridData(int width, int height) – создание экземпляра с заданными параметрами

GridData(int horizontalAlignment, int verticalAlignment, boolean grabExcessHorizontalSpace, boolean grabExcessVerticalSpace) – создание экземпляра с заданными параметрами

GridData(int horizontalAlignment, int verticalAlignment, boolean grabExcessHorizontalSpace, boolean grabExcessVerticalSpace, int horizontalSpan, int verticalSpan) – создание экземпляра с заданными параметрами

Методы

String toString() – строковое представление объекта.

Пример (рисунок 3.1).

import org.eclipse.swt.*;

import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*;

public class testLayout {

90

Рисунок 3.1 – Пример размещения элементов

public static void main (String [ ] args) {

Display display = new Display ();

Shell shell = new Shell (display); GridLayout layout = new GridLayout(4, false); shell.setLayout(layout);

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

b.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true, 1, 1));

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

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

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

b.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, true, true, 1, 1));

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

b.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, true, true,

1, 1));

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

b.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, true, true,

1, 1));

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

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

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

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

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

91

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