...
...

Простые SWT-компоненты. Класс Link

Класс Link предназначен для вывода текста, включающего гиперлинки. Экземпляр класса Link, в отличие от компонента Label, получает фокус ввода при перемещении курсора, например, клавишей Tab или при кликании по нему мышкой. Создав обработчик событий, можно организовать обработку выбранного линка — например, переход на web-страницу.

Для создания экземпляра класса Link используется следующий конструктор:

public Link (Composite parent, int style)

где parent — обязательный родительский компонент (контейнер), а style — один или несколько стилей, определяющих параметры создания класса Link.

Рис. 1. Компонент Link. Иерархия классов

Рис. 2. Компонент Link. Изображение в визуальном редакторе

Стили

Стили формируют битовую маску по принципу логического "ИЛИ". Для объединения стилей используется символ "|". Базовый класс
org.eclipse.swt.widgets.Control предоставляет возможность прорисовки рамки вокруг компонента при указании стиля SWT.BORDER, а также изменение направления вывода LEFT_TO_RIGHT, RIGHT_TO_LEFT для письма слева направо и справа налево.

Текст

Для задания текста, выводимого классом Link, используется метод

public void setText (String text)

Текст может содержать как непосредственно текст или как гиперлинки. Гиперлинки помещаются в теги привязки <a> и </a>. Внутри тегов привязки доступен атрибут href. При выборе гиперлинка в обработчик события передается текст гиперлинка или значение href, если он указан. Текст может содержать мнемоники и разделители.

Пример 1. Задание текста компонента Link
siteLink = new Link(shell, SWT.NONE);
siteLink.setText(
"Код примеров использования SWT-компонент\n"
+ "можно найти на сайте: "
+ "<a href=\" сайт
+ " сайт

Метод

public String getText()

возвращает текст или пустую строку, если текст не задавался или использовалась маска SWT.SEPARATOR.

Слушатели событий

Слушатели предназначены для фиксации и обработки событий компонента Link.

addSelectionListener(SelectionListener listener)

добавляет в коллекцию слушателей слушатель, который активизируется при выборе линка, где listerner — одна из возможных реализаций интерфейса обработчика событий:
. widgetSelected — вызывается при изменении выбора (например, при выборе линка при помощи клавиатуры или мыши);
. widgetDefaultSelected — вызывается при выполнении платформозависимой операции по умолчанию. На большинстве платформ это нажатие кнопки <Enter> или двойной клик мыши.

Пример 2. Слушатель, который обрабатывает выбор линков компонента Link
siteLink.addSelectionListener(
new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(
org.eclipse.swt.events.SelectionEvent e) {
browser.setUrl(e.text);
}
});

Метод:

removeSelectionListener(SelectionListener listener)

удаляет ранее созданный слушатель listener из коллекции слушателей.

Рис. 3. Использование класса Link для ссылки на web-ресурсы

Текст тестового примера работы с классом Link приведен в файле by.berdachuk.swt.simplewidgets.LinkTest.java .
Архив демонстрационного проекта можно скачать по адресу сайт

Сергей Бердачук, berdachuk@tut.by, http://forjava.dev.juga.ru

© Компьютерная газета

полезные ссылки
Аренда ноутбуков