- •Обозначения и сокращения
- •Введение
- •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.7 Класс FormAttachment
java.lang.Object
org.eclipse.swt.layout.FormAttachment
Экземпляры этого класса (таблица 3.8) определяют края элемента управления в пределах FormLayout. FormAttachments являются значением полей top, bottom, left и right объекта FormData для элемента управления. Например:
FormData data |
= new FormData(); |
data.top |
= new FormAttachment(0,5); |
data.bottom |
= new FormAttachment(100,-5); |
data.left |
= new FormAttachment(0,5); |
data.right |
= new FormAttachment(100,-5); |
button.setLayoutData(data);
FormAttachment определяет подключение стороны элемента управления, используя уравнение y = ax + b, где "a" представляет долю родительской ширины (от левой) или высоты (от верхней) и может быть определено, используя числитель и знаменатель, или просто величину в процентах. Если использованы проценты, знаменатель установлен как 100. Значение "b" в уравнении представляет приращение области в пикселях от позиции присоединения. Например:
FormAttachment attach = new FormAttachment (20, -5);
определяет, что сторона, которой объект FormAttachment принадлежит, лежит в 20% родительской области, минус 5 пикселей.
Управляющие стороны могут также прикреплены к другому элементу управлению. Например:
FormAttachment attach = new FormAttachment (button, 10);
определяет, что сторона, к которой объект FormAttachment принадлежит, будет лежать в той же позиции, как смежная сторона управления кнопки, плюс 10 пикселей. Сторона элемента может также прикреплена к противоположной стороне заданного элемента управления. Например:
FormData data = new FormData();
data.left = new FormAttachment(button, 0, SWT.LEFT);
определяет, что левая сторона лежит в той же позиции как левая сторона управления кнопки. Элемент может быть прикреплен к позиции, которая центрируется на заданном элементе. Например:
data.left = new FormAttachment (button, 0, SWT.CENTER);
100
определяет, что левая сторона будет позиционирована так, чтобы она была отцентрирована между левыми и правыми сторонами кнопки. Если выравнивание не определено, то по умолчанию элемент подключается к смежной стороне.
Таблица 3.8 – Методы компонентов класса FormAttachment
|
Поля объекта |
int |
alignment – определяет выравнивание стороны элемента, которая |
|
прикреплена к элементу управления |
Control |
control – определяет элемент, к которому прикреплена сторона. |
int |
denominator – знаменатель терма "a" в уравнении, y = ax + b, |
|
которое определяет присоединение |
int |
numerator – числитель терма "a" в уравнении, y = ax + b, которое |
|
определяет присоединение |
int |
offset – определяет смещение в пикселях стороны от позиции |
|
присоединения |
|
Конструкторы класса |
FormAttachment(Control control) – Создание экземпляра класса для заданного элемента
FormAttachment(Control control, int offset) – Создает новый экземпляр класса для заданного элемента и смещения
FormAttachment(Control control, int offset, int alignment) – Создает новый экземпляр класса для заданного элемента, смещения и выравнивания
FormAttachment(int numerator) – Создает новый экземпляр класса для заданного счетчика. Поскольку никакие знаменатель или смещение не определены, numerator рассматривается как процент формы, со знаменателем 100
FormAttachment(int numerator, int offset) – Создает новый экземпляр класса для заданного счетчика и смещения
FormAttachment(int numerator, int denominator, int offset) – Создает новый экземпляра класса для заданных параметров
|
Методы |
String |
toString() – Возвращает строку содержащую краткое, |
|
удобочитаемое описание получателя |
|
|
101
3.8 Класс FormData
java.lang.Object
org.eclipse.swt.layout.FormData
Экземпляры этого класса (таблица 3.9) определяют присоединения элемента в FormLayout. Чтобы установить объект FormData на элемент управления используется метод setLayoutData(). Для определения присоединения для FormData, непосредственно установите поля:
FormData data = new FormData(); data.left = new FormAttachment(0,5); data.right = new FormAttachment(100,-5); button.setLayoutData(formData);
FormData содержит FormAttachments для каждой стороны элемента управления и использует FormLayout, чтобы задать размер и позицию элемента управления. Объекты FormData также позволяют устанавливать ширину и высоту элементов управления в пределах FormLayout.
Таблица 3.9 – Методы компонентов класса FormData
|
Поля объекта |
FormAttachment |
bottom – присоединение нижней границы элементов |
|
управления |
int |
height – высота элементов управления |
FormAttachment |
left – присоединение левой границы элементов |
|
управления |
FormAttachment |
right – присоединение правой границы элементов |
|
управления |
FormAttachment |
top – присоединение верхней границы элементов |
|
управления |
int |
width – ширина элементов управления |
|
Конструкторы |
FormData() – новый FormData, использовав значения по умолчанию
FormData(int width, int height) – новый FormData, использовав заданные значения
Методы
String toString() – Возвращает строку содержащую краткое, удобочитаемое описание получателя
102
103