- •Обозначения и сокращения
 - •Введение
 - •1 Простое SWT приложение
 - •1.1 Создание приложения
 - •1.2 Запуск SWT программы из командной строки
 - •1.3 Структура приложения
 - •1.4 Слушатели событий
 - •1.5 Работа с подпроцессами
 - •1.5.1 Диспетчеризация внутренних событий
 - •1.5.2 Нить пользовательского интерфейса SWT
 - •1.5.3 Выполнение кода за пределами нити UI
 - •1.5.4 Рабочая среда и нити
 - •2 Элементы управления
 - •2.1 Стандартные виджеты
 - •2.2 Пользовательские виджеты
 - •2.3 Класс Label
 - •2.3.1 Стили
 - •2.3.2 Текст
 - •2.3.3 Изображение
 - •2.3.4 Разделители
 - •2.3.5 Выравнивание
 - •2.3.6 Перенос слов текста
 - •2.3.7 Пример использования этикеток
 - •2.4 Класс Text
 - •2.5 Класс Button
 - •2.5.1 Стили
 - •2.5.2 Текст
 - •2.5.3 Изображение
 - •2.5.4 Выравнивание
 - •2.5.5 Push Button
 - •2.5.6 Toggle Button
 - •2.5.7 Check Box
 - •2.5.8 Radio Button
 - •2.5.9 Selection (выбор)
 - •2.5.10 Указание используемой по умолчанию кнопки
 - •2.6 Класс List
 - •2.6.1 Стили
 - •2.6.2. Добавление элементов в список
 - •2.6.3. Удаление элементов из списка
 - •2.6.4 Получение элементов списка
 - •2.6.5 Настройка значений элементов
 - •2.6.6 Поиск элементов
 - •2.6.7 Выбор элементов списка
 - •2.6.8 Обработка событий списка List
 - •2.7 Класс Link
 - •2.7.1 Стили
 - •2.7.2. Текст
 - •2.7.3. Обработчики событий
 - •2.8 Класс Table
 - •2.9 Класс TableColumn
 - •2.10 Класс TableItem
 - •2.11 Класс Item
 - •2.12 Класс Combo
 - •2.13 Класс FileDialog
 - •2.14 Класс Menu
 - •2.15 Класс MenuItem
 - •2.16 Класс MessageBox
 - •2.17 Класс TabFolder
 - •2.18 Class TabItem
 - •3 Макеты
 - •3.1 Класс FillLayout
 - •3.2 Класс GridLayout
 - •3.3 Класс GridData
 - •3.4 Класс RowLayout
 - •3.5 Класс RowData
 - •3.6 Класс FormLayout
 - •3.7 Класс FormAttachment
 - •3.8 Класс FormData
 - •4 Графика
 - •4.1 Класс GC
 - •4.2 Класс Canvas
 - •5 Пакет printing
 - •5.1 Класс PrintDialog
 - •5.2 Класс Printer
 - •5.3 Класс PrinterData
 - •6 Пакет events
 - •6.1 Класс Event
 - •7 Разработка приложений
 - •8 Разработка новых компонент
 - •9 Дополнительные возможности библиотеки SWG
 - •9.1 Компоненты управления
 - •9.2 Виджеты
 - •9.3 Плоские формы
 - •9.4 Линии, точки и ломанные
 - •9.5 Класс PathShape
 - •10 Анимация
 - •10.1 Типы анимации
 - •10.2 Анимация во времени
 - •10. 3 Поддержка времени
 - •10.4 Пример приложения с элементами анимации
 - •Список использованных источников
 
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
