- •Обозначения и сокращения
- •Введение
- •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 Пример приложения с элементами анимации
- •Список использованных источников
b.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, true, true, 1, 1));
shell.open ();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep();
}
display.dispose();
}
}
3.4 Класс RowLayout
java.lang.Object
org.eclipse.swt.widgets.Layout
org.eclipse.swt.layout.RowLayout
Объекты этого класса (таблица 3.5) определяют размер и позицию дочерних элементов окна в горизонтальной или вертикальной колонке в пределах родителя. У него есть способность обертывать, обеспечивать перестраиваемые поля и промежутки. RowLayout имеет множество конфигурационных полей. Кроме того, высота и ширина каждого элемента управления в RowLayout могут быть определены установкой объекта RowData с использованием метода setLayoutData().
Следующий код создает RowLayout, устанавливает все поля в новое значение, затем подключает его в оболочку.
RowLayout rowLayout = new RowLayout(); rowLayout.wrap = false; rowLayout.pack = false; rowLayout.justify = true; rowLayout.type = SWT.VERTICAL; rowLayout.marginLeft = 5; rowLayout.marginTop = 5; rowLayout.marginRight = 5; rowLayout.marginBottom = 5; rowLayout.spacing = 0; shell.setLayout(rowLayout);
92
Таблица 3.5 – Методы компонентов класса RowLayout Обзор полей
boolean fill – Определяет полное заполнение пространства родителя элементами формы
93
boolean |
justify – Определяет дополнительные промежутки между |
|
элементами управления |
|
|
int |
marginBottom – Количество пикселей отступа снизу вдоль нижней |
|
границы формата |
int |
marginHeight – Количество пикселей отступа сверху и снизу вдоль |
|
границы формата |
int |
marginLeft – Количество пикселей отступа слева, которое будет |
|
установлено вдоль границы формата |
int |
marginRight – Количество пикселей отступа справа, которое будет |
|
установлено вдоль границы формата |
int |
marginTop – Количество пикселей отступа сверху, которое будет |
|
установлено вдоль границы формата |
int |
marginWidth – Количество пикселей отступа с боков, которое |
|
будет установлено вдоль границы формата |
boolean |
pack – Упаковка предполагает, что все элементы управления будут |
|
иметь предпочтительный размер |
int |
spacing – Количество пикселей между краем одной ячейки и краем |
|
соседней ячейки |
int |
type – Задает горизонтальное или вертикальное размещение |
|
элементов |
boolean |
wrap – Определяет перенос элементов управления в следующую |
|
колонку если недостаточно пространства в текущей колонке |
Конструкторы класса
RowLayout() – Создает экземпляр класса
RowLayout(int type) – Создает экземпляр класса заданного типа
|
Методы |
protected |
computeSize(Composite composite, int wHint, int hHint, boolean |
Point |
flushCache) – Вычисляет и возвращает размер заданной составной |
|
области клиента соответствующей этому формату |
protected |
flushCache(Control control) – Сбрасывать кеш, связанный с |
boolean |
заданным элементом управления |
protected |
layout(Composite composite, boolean flushCache) – Укладывать |
void |
дочерние элементы окна согласно этому формату. |
String |
toString() – Преобразовать в строковое представление |
94
Пример.
Display display = new Display();
Shell shell = new Shell(display);
RowLayout layout = new RowLayout(SWT.HORIZONTAL); layout.wrap = true;
layout.fill = false; layout.justify = true; shell.setLayout(layout);
Button b = new Button(shell, SWT.PUSH); b.setText("Button 1");
b = new Button(shell, SWT.PUSH); b.setText("Button 2");
b = new Button(shell, SWT.PUSH); b.setText("Button 3");
b = new Button(shell, SWT.PUSH); b.setText("Not shown"); b.setVisible(false);
RowData data = new RowData(); data.exclude = true; b.setLayoutData(data);
b = new Button(shell, SWT.PUSH); b.setText("Button 200 high"); data = new RowData(); data.height = 200; b.setLayoutData(data);
b = new Button(shell, SWT.PUSH); b.setText("Button 200 wide");
Рисунок 3.2 – Пример размещения элементов data = new RowData();
data.width = 200; b.setLayoutData(data); shell.pack(); shell.open();
95