- •Обозначения и сокращения
- •Введение
- •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 Пример приложения с элементами анимации
- •Список использованных источников
{
System.out.println (“Select All”);
}
});
item.setText (“Select &All\tCtrl+A”); item.setAccelerator (SWT.MOD1 + ‘A’); shell.setSize (200, 200);
shell.open ();
2.15 Класс MenuItem
java.lang.Object
org.eclipse.swt.widgets.Widget
org.eclipse.swt.widgets.Item
org.eclipse.swt.widgets.MenuItem
Объекты этого класса представляют интерфейс пользователя, который уведомляет о нажатии и отпускании пункта меню (таблица 2.14).
Стили: CHECK, CASCADE, PUSH, RADIO, SEPARATOR События: Arm, Help, Selection
Примечание: Только один из стилей CHECK, CASCADE, PUSH, RADIO, SEPARATOR может быть определен.
Таблица 2.14 – Методы компонентов класса MenuItem
Конструкторы
MenuItem(Menu parent, int style) – Создает новый объект этого класса для родителя (который должен быть Menu) и стиля, описывающая поведение и вид
MenuItem(Menu parent, int style, int index) – Создает новый объект этого класса для родителя (который должен быть Menu), стиля, описывающая поведение и вид, и индекс в списке пунктов своего родителя
|
Методы |
void |
addArmListener(ArmListener listener) – Добавляет обработчик |
|
события arm, посылая одно из сообщений, определенное на |
|
интерфейсе ArmListener |
void |
addHelpListener(HelpListener listener) – Добавляет обработчик |
|
события помощи, посылая этому одно из сообщений |
|
определенное на интерфейсе HelpListener |
void |
addSelectionListener(SelectionListener listener) – Добавляет |
|
обработчик события «выбран пункт меню», посылая этому одно |
76
|
из сообщений определенное на интерфейсе SelectionListener |
protected |
checkSubclass() – Проверяет этот класс может быть subclassed |
void |
|
int |
getAccelerator() – Возвращает акселератор виджета |
|
|
boolean |
getEnabled() – Возвращается true, если получатель доступен, и |
|
false в противном случае |
Menu |
getMenu() – Возвращает каскадное меню получателя или null, если |
|
его нет |
Menu |
getParent() – Возвращает родителя получателя, который должен |
|
быть Menu |
boolean |
getSelection() – Возвращает true, если пункт выбран |
|
|
boolean |
isEnabled() – Возвращается верно, если получатель доступен, и |
|
ложь в противном случае |
void |
removeArmListener(ArmListener listener) – Удаляет обработчик |
|
события arm для управления |
void |
removeHelpListener(HelpListener listener) – Удаляет обработчик |
|
события help для управления |
void |
removeSelectionListener(SelectionListener listener) – Удаляет |
|
обработчик события выбора для элемента управления |
void |
setAccelerator(int accelerator) – Устанавливает акселератор виджета |
void |
setEnabled(boolean enabled) – Доступность пункта если аргумент |
|
является истиной и нет в противном случае |
void |
setImage(Image image) – Устанавливает образ, который отобразит |
|
получатель |
void |
setMenu(Menu menu) – Устанавливает падающее меню для пункта |
|
|
void |
setSelection(boolean selected) – Устанавливает состояние выбора |
|
пункта |
void |
setText(String string) – Устанавливает текст получателя |
|
|
Пример.
Display display = new Display ();
Shell shell = new Shell (display);
Composite composite = new Composite (shell, SWT.BORDER); composite.setSize (100, 100);
Menu menu = new Menu (shell, SWT.POP_UP);
MenuItem item1 = new MenuItem (menu, SWT.PUSH);
77
item1.setText (“Push Item”);
MenuItem item2 = new MenuItem (menu, SWT.CASCADE); item2.setText (“Cascade Item”);
Menu subMenu = new Menu (menu); item2.setMenu (subMenu);
MenuItem subItem1 = new MenuItem (subMenu, SWT.PUSH); subItem1.setText (“Subitem 1”);
MenuItem subItem2 = new MenuItem (subMenu, SWT.PUSH); subItem2.setText (“Subitem 2”);
composite.setMenu (menu); shell.setMenu (menu); shell.setSize (300, 300); shell.open ();
2.16 Класс MessageBox
java.lang.Object
org.eclipse.swt.widgets.Dialog
org.eclipse.swt.widgets.MessageBox
Объекты этого класса (таблица 2.15) используются для формирования сообщений пользователю.
Стили:
ICON_ERROR, ICON_INFORMATION, ICON_QUESTION, ICON_WARNING, ICON_WORKING
OK, OK | CANCEL
YES | NO, YES | NO | CANCEL
RETRY | CANCEL
ABORT | RETRY | IGNORE
Таблица 2.15 – Методы компонентов класса MessageBox
Конструкторы
MessageBox(Shell parent) – Создает новый объект этого класса для родителя
MessageBox(Shell parent, int style) – Создает новый объект этого класса для родителя и стиля
|
Методы |
String |
getMessage() – Возвращает диалоговое сообщение, или пустую строку |
|
если его нет |
int |
open() – Делает диалог видимым и переносит его наверх |
|
|
void |
setMessage(String string) – Устанавливает диалоговое сообщение |
|
|
Пример.
Display display = new Display();
final Shell shell = new Shell(display);
78
shell.setLayout(new FillLayout());
Menu bar = new Menu (shell, SWT.BAR); shell.setMenuBar (bar);
MenuItem editItem = new MenuItem (bar, SWT.CASCADE); editItem.setText ("Диалоги");
Menu submenu = new Menu (shell, SWT.DROP_DOWN); editItem.setMenu (submenu);
MenuItem itemMsg = new MenuItem (submenu, SWT.PUSH); itemMsg.addListener (SWT.Selection, new Listener () {
public void handleEvent (Event e) { MessageBox msg = new MessageBox(shell,
SWT.ICON_QUESTION | SWT.YES | SWT.NO |
SWT.CANCEL);
msg.setMessage("Привет из меню"); int res = msg.open();
System.out.print("Код возврата = " + res + “\n”);
}
});
itemMsg.setText ("Сообщение"); shell.setSize(200, 200); shell.open();
2.17 Класс TabFolder
java.lang.Object
org.eclipse.swt.widgets.Widget
org.eclipse.swt.widgets.Control
org.eclipse.swt.widgets.Scrollable
org.eclipse.swt.widgets.Composite
org.eclipse.swt.widgets.TabFolder
Реализуемые интерфейсы: Drawable
Объекты этого класса (таблица 2.16) аналогичны записной книжке с закладками. Потомки, которые могут быть добавлены к объектам этого класса, должны быть типа TabItem. Закрепление управляющих элементов на странице производится методом setControl.
Стили: TOP, BOTTOM
Таблица 2.16 – Методы компонентов класса TabFolder
Конструктор
TabFolder(Composite parent, int style) – Создает новый объект этого класса для родителя и стиля, описывающих поведение и вид
|
Методы |
void |
addSelectionListener(SelectionListener listener) – Добавляет |
|
обработчик выбора получателя, посылая ему одно из сообщений |
79
|
определенное на интерфейсе SelectionListener |
|
protected |
checkSubclass() – Проверяет, этот класс может быть subclassed |
|
void |
||
|
||
Point |
computeSize(int wHint, int hHint, boolean changed) – Возвращает |
|
|
предпочтительный размер получателя |
|
Rectangle |
computeTrim(int x, int y, int width, int height) – Задает желаемую |
|
|
область клиента для получателя (как описано аргументами), |
|
|
прямоугольник bounding, который требуется для области клиента |
|
Rectangle |
getClientArea() – Возвращает прямоугольник, который описывает |
|
|
область получателя, способного отображать данные |
|
TabItem |
getItem(int index) – Возвращает пункт по индексу на получателе |
|
int |
getItemCount() – Возвращает количество пунктов на получателе |
|
TabItem[ |
getItems() – Возвращает массив TabItems пунктов на получателе |
|
] |
||
|
||
TabItem[ |
getSelection() – Возвращает массив TabItems, который к |
|
] |
настоящему времени выбран на получателе |
|
int |
getSelectionIndex() – Возвращает индекс пункта, который к |
|
|
настоящему времени выбран на получателе, или -1 если никакой |
|
|
пункт не выбран |
|
int |
indexOf(TabItem item) – Просматривает список получателя |
|
|
начиная с первого пункта (индекс 0) пока не будет обнаружен |
|
|
пункт, заданный аргументом и возвращает индекс этого пункта |
|
void |
removeSelectionListener(SelectionListener listener) – Удаляет |
|
|
обработчик выбора получателя |
|
void |
setSelection(int index) – Выбирается пункт с заданным индексом |
|
void |
setSelection(TabItem[ ] items) – Устанавливает выбор заданным |
|
|
массивом пунктов |
|
|
|
Пример.
Display display = new Display ();
final Shell shell = new Shell (display);
final TabFolder tabFolder = new TabFolder (shell, SWT.BORDER); for (int i=0; i<6; i++) {
TabItem item = new TabItem (tabFolder, SWT.NONE); item.setText ("TabItem " + i);
Button button = new Button (tabFolder, SWT.PUSH);
80