- •Обозначения и сокращения
- •Введение
- •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 Пример приложения с элементами анимации
- •Список использованных источников
void setFont (Font font) – устанавливает используемый шрифт font.
setTopIndex (int index) – устанавливает индекс первого видимого элемента в списке List (отсчет начинается от нуля). Индекс элемента может изменяться при скроллировании, добавлении или удалении элементов.
2.6.6 Поиск элементов
Методы поиска элементов списка:
int indexOf (String string) – возвращает индекс строки string, если таковая найдена в списке (поиск начинается от нуля). Если строка string не найдена, то возвращается (-1).
int indexOf (String string, int start) – возвращает индекс найденной строки string. Поиск производится, начиная с позиции start (отсчет начинается от нуля). Если строка string не найдена или указан неверный индекс start, то возвращается (-1).
2.6.7 Выбор элементов списка
В зависимости от выбранного стиля можно выбирать только один (SWT.SINGLE) или несколько строк списка (SWT.MULTI).
Для проверки выбран элемент или нет, используется метод isSelected Если элемент выбран, возвращает true и false в противном
Для выбора (выделения) элементов списка List предназначены методы:
select (int index) – выбирает строку в определенной позиции index (отсчет начинается от нуля). Если указан неверный индекс, то операция игнорируются.
select (int start, int end) – начиная с позиции start по end включительно, выбирает элементы списка. Если указаны неверные значения индексов интервала, то такие элементы игнорируются.
select (int [ ] indeces) – выбирает строки с указанными в массиве indeces индексами. Если указаны неверные индексы, то они игнорируются.
selectAll () – выбирает все элементы списка.
Замечание: Методы выбора select(..) не сбрасывают состояние выбора элементов списка, которое было установлено до выполнения операции нового выбора. Так же не происходит скроллирования при выборе невидимых в данный момент элементов.
52
Если установлен флаг SWT.SINGLE и производится операция над множеством элементов, например selectAll(), то данная операция игнорируется.
Пример. Выбор элементов из List источника и перенос их в List приемник с использованием массива элементов (рисунок 2.5).
Рисунок 2.5 – Списки
/**
* Переносит все элементы списка источника в список List приемника. */
private void moveAllToTarget() { lstSource.selectAll(); moveSelectedToTarget();
}
/**
* Переносит выбранные элементы списка источника в список List приемника.
*/
private void moveSelectedToTarget() {
String[ ] selectedItems = lstSource.getSelection(); for (int i = 0; i < selectedItems.length; i++) {
lstSource.remove(selectedItems[i]);
lstTarget.add(selectedItems[i]);
}
fireListsChanged();
}
setSelection (int index) – отменяет выбор всех ранее выбранных элементов и выбирает элемент с индексом index (отсчет начинается от нуля).
53
setSelection (int [ ] indices) – отменяет выбор всех ранее выбранных элементов и выбирает элементы с индексами массива indices (отсчет начинается от нуля).
setSelection (int start, int end) – отменяет выбор всех ранее выбранных элементов и начиная с позиции start по end включительно, выбирает элементы списка. Если указаны неверные значения индексов интервала, то такие элементы игнорируются.
setSelection (String [ ] items) – отменяет выбор всех ранее выбранных элементов и выбирает соответствующие массиву items элементы (отсчет начинается от нуля).
Для получения информации о выбранных элементах предназначены следующие методы:
String[ ] getSelection () – возвращает массив выбранных элементов списка. Выбранные элементы не сортируются. Пустой массив означает, что ничего не выбрано.
int getSelectionCount () – возвращает количество выбранных элементов в списке.
int getSelectionIndex () – возвращает индекс текущей выбранной строки если на ней установлен фокус курсора (отсчет начинается от нуля). В противном случае возвращается индекс первой выбранной строки в списке. Если ни одного элемента списка не выбрано, то возвращается -1.
Пример. Пример контроля выбора элементов списка List
/** * Настройка доступных действий по состоянию списков источника и
приемника.
*/
private void fireListsChanged() { btnAdd.setEnabled((lstSource.getSelectionIndex() != -1)); btnAddAll.setEnabled(lstSource.getItemCount() > 0); btnRemove.setEnabled((lstTarget.getSelectionIndex() != -1)); btnRemoveAll.setEnabled(lstTarget.getItemCount() > 0);
}
int [ ] getSelectionIndices () – возвращает массив индексов выбранных элементов списка List.
Пример. Выбор элементов из List приемника и перенос их в List источник с использованием массива индексов
private void moveSelectedToSource() {
int[ ] selectedItems = lstTarget.getSelectionIndices(); for (int i = 0; i < selectedItems.length; i++) {
54
lstSource.add(lstTarget.getItem(selectedItems[i]));
}
lstTarget.remove(selectedItems);
fireListsChanged();
}
Метод showSelection () – производит скроллирование элементов списка List до появления на экране первого выбранного элемента.
Для отмены выбора применяются следующие методы:
deselect (int index) – отменяет выбор строки в определенной позиции index (отсчет начинается от нуля). Если указан неверный индекс или элемент ранее не был выбран, то операция игнорируются.
deselect (int [ ] indices) – отменяет выбор элементов с индексами массива индексов indeces. (отсчет начинается от нуля). Элементы с неверными индексами игнорируются.
deselect (int start, int end) – отменяет выбор строк, начиная с позиции start по end включительно. Если указаны неверные значения индексов интервала, то такие элементы игнорируются.
deselectAll () – отменяет выбор всех элементов списка List.
2.6.8 Обработка событий списка List
Обработчики предназначены для фиксации некоторых событий в системе и выполнения адекватных действий в соответствии с типом события. Метод addSelectionListener(SelectionListener listener) добавляет обработчика в коллекцию, который активизируется при изменении выбора List, где listener – одна из возможных реализаций интерфейса обработчика событий:
widgetSelected – вызывается при изменении выбора (например, при выборе элемента списка при помощи клавиатуры или мыши).
widgetDefaultSelected – вызывается при выполнении платформозависимой операции по умолчанию. На большинстве платформ это нажатие кнопки <Enter> или двойной клик мыши.
Метод removeSelectionListener(SelectionListener listener)
удаляет ранее созданный слушатель listener из коллекции слушателей.
Пример. Слушатель, который контролирует изменение состояния выбора элементов списка List
// Добавляем слушатель изменений списка источников lstSource.addSelectionListener(
new org.eclipse.swt.events.SelectionAdapter() {
55