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

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

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