- •Обозначения и сокращения
- •Введение
- •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 Пример приложения с элементами анимации
- •Список использованных источников
Если кнопка типа 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