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

Если кнопка типа TOGGLE, то при selected равном true она нажимается (состояние нажата). При selected равном false она отжимается (состояние отжата).

Метод public boolean getSelection() предназначен для чтения состояние кнопок типов CHECK, RADIO и TOGGLE. При выбранном (checked или нажатом состоянии) возвращает true. В противном случае возвращается

false.

Замечание. В отличие от остальных типов кнопок событие SWT.Selection кнопкой типа Push Button не обрабатывается. Для кнопки данного типа метод getSelection() всегда возвращает значение false.

2.5.10 Указание используемой по умолчанию кнопки

Контейнер shell включает в себя понятие кнопки по умолчанию (default button) которая выбирается при нажатии пользователем кнопки <Enter> в не зависимости от того, какой компонент в данный момент имеет фокус ввода. Чаще всего данное свойство используется для подтверждения быстрой отмены в диалоговых окнах. Соответственно есть методы getDefaultButton() и setDefaultButton(Button button) для оперирования данным свойством.

Пример. Указание кнопки по умолчанию (рисунок 2.4)

GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 2;

Label label = new Label(shell, SWT.NONE); label.setText("Новый пароль: ");

Text text = new Text (shell, SWT.BORDER);

Button buttonOk = new Button(shell, SWT.NONE); buttonOk.setText("Изменить");

Button buttonCancel = new Button(shell, SWT.NONE); buttonCancel.setText("Отмена"); shell.setDefaultButton (buttonCancel); shell.setLayout(gridLayout);

shell.pack();

Рисунок 2.4 – Указание кнопки по умолчанию

48

2.6 Класс List

java.lang.Object

org.eclipse.swt.widgets.Widget

org.eclipse.swt.widgets.Control

org.eclipse.swt.widgets.Scrollable

org.eclipse.swt.widgets.List

Класс List предназначен для создания визуального компонента, который отображает столбец из списка строк. Он позволяет скроллировать отображаемый список и предоставляет возможность выбирать одну или несколько строк из списка. Данный компонент применяется довольно редко, так как позволяет оперировать только строками. Используя таблицы можно получить аналогичную функциональность, при

больших возможностях.

Для создания экземпляра класса List используется конструктор public List (Composite parent, int style), где parent – обязательный родительский компонент (контейнер), а style это один или несколько определяющих параметры создания класса List стилей.

2.6.1 Стили

Стили (таблица 2.6) формируют битовую маску по принципу логического «ИЛИ». Для объединения стилей используется символ "|".

Таблица 2.6 – Стили компонентов класса List

Стиль

Описание

Примечание

SWT.SINGLE

Может быть выбрана

 

только одна строка.

Допустимо указывать только

 

 

Позволяет выбирать

один из стилей SWT.SINGLE

SWT.MULTI

или SWT.MULTI

несколько строк из списка

 

 

 

 

 

SWT.BORDER

Флаг для прорисовки

 

окантовки компонента

 

 

 

SWT.H_SCROLL

Создает горизонтальную

 

полосу прокрутки

 

 

 

SWT.V_SCROLL

Создает вертикальную

 

полосу прокрутки

 

 

 

 

 

 

49

Так как класс List наследуется от класса org.eclipse.swt.widgets.Scrollable, то можно указать на необходимость создания полос прокрутки. Для этого предназначены стили SWT.H_SCROLL и SWT.V_SCROLL создающие соответственно горизонтальную и вертикальную полосы прокрутки.

Базовый класс org.eclipse.swt.widgets.Control предоставляет возможность прорисовки рамки вокруг компонента при указании стиля SWT.BORDER, а так же изменение направления вывода LEFT_TO_RIGHT, RIGHT_TO_LEFT для письма слева направо и справа налево.

2.6.2. Добавление элементов в список

Для добавления строк в конец списка используется метод add (String string), где string – добавляемая строка.

Метод add (String string, int index) добавляет строку в определенную позицию (отсчет начинается от нуля). Строка добавляется перед занимающим указанную позицию элементом (строкой). Остальные элементы сдвигаются на один элемент к концу списка.

Замечание. Индекс для добавления в конец списка можно получить, вызвав метод getItemCount().

Пример. Инициализация списка List

private void fillLists() { lstSource.add("Один"); lstSource.add("Два"); lstSource.add("Три"); lstSource.add("Четыре"); lstSource.add("Пять");

}

2.6.3. Удаление элементов из списка

Для удаления элементов из списка предназначены методы:

remove (int index) – удаляет строку в определенной позиции index (отсчет начинается от нуля).

remove (int start, int end) – удаляет строки, начиная с позиции start по end включительно.

remove (int [ ] indexes) – удаляет строки с указанными в массиве indexes индексами.

50

remove (String string) – производится поиск первого вхождения строки string в список, и если она найдена, то данная строка удаляется из списка.

removeAll () – удаляет все элементы списка.

2.6.4 Получение элементов списка

Методы доступа к элементам списка List:

getItem (int index) – возвращает элемент в указанной позиции index (отсчет начинается от нуля). Если указан неверный индекс, то вызывается исключение.

int getItemCount () – возвращает количество элементов в списке List.

String [ ] getItems () – возвращает массив строк списка (может быть пустым).

Замечание: Возвращаемый массив не является структурой хранения данных списка, так что его изменение не влияет на отображаемый список List.

int getTopIndex () – возвращает индекс первого видимого элемента в списке List (отсчет начинается от нуля). Индекс элемента может изменяться при скроллировании, добавлении или удалении элементов.

int getFocusIndex () – возвращает индекс элемента, на котором установлен фокус курсора (отсчет начинается от нуля). Если фокус не установлен, то возвращается (-1).

int getItemHeight () – возвращает высоту элемента списка в пикселях при отображении на экране. Данное значение может быть использовано для вычисления предпочтительного размера списка List.

2.6.5 Настройка значений элементов

Для настройки значений элементов списка List предназначены следующие методы:

setItem (int index, String string) – вставляет строку string в определенную позицию index (отсчет начинается от нуля). Строка String string замещает значение, занимающего указанную позицию элемента. Данный метод функционально аналогичен последовательному вызову методов remove (index) и add (String, index) по указанному индексу index списка.

setItems (String [ ] items) – замещает список элементов List значениями элементов массива items.

51

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