
- •Обозначения и сокращения
- •Введение
- •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