Выделение ссылок - PullRequest
       10

Выделение ссылок

3 голосов
/ 08 ноября 2011

Я создаю справочную систему, которая использует ссылки (расширение JButton), которые раскрывают и сворачивают подпанели с JLabels в них. Ссылки и складные панели работают, но у меня возникают проблемы с реализацией моего диалога поиска. Я хочу иметь возможность выделять части текста, которые ищет пользователь. Я думаю, что мое использование атрибутов текста для подчеркивания текста в ссылках мешает моей способности выделять части текста, но я не уверен, как это сделать по-другому. Вот код для моего класса Link, который мой подкласс ссылок:

public abstract class Link extends JButton {

private static final int SPACE = 5;

private static final Color TEXT_COLOR = Color.BLUE;

public Link(String text) {
    super(text);

    setBorder(BorderFactory.createEmptyBorder(SPACE, SPACE, SPACE,
            2 * SPACE));
    setContentAreaFilled(false);
    setFocusable(false);
    setForeground(TEXT_COLOR);

    Map<TextAttribute, Integer> underlineAttribute =
        new HashMap<TextAttribute, Integer>();
    underlineAttribute.put(TextAttribute.UNDERLINE,
            TextAttribute.UNDERLINE_ON);
    setFont(getFont().deriveFont(underlineAttribute));
}

}

Как я могу реализовать подсветку текста в моих ссылках, не избавляясь от подчеркивания? Нужно ли менять их на подкласс? Спасибо заранее!

1 Ответ

3 голосов
/ 08 ноября 2011

Один из подходов заключается в использовании HTML-форматирования для текста кнопки. Конечно, путь наименьшего удивления для конечного пользователя был бы, если бы кнопки выглядели как кнопки, а ссылки выглядели как ссылки (то есть не кнопки).


Должен ли я сделать что-то еще для ссылок?

Для ссылки я бы обычно использовал JTextField, как показано в моем ответе на Как изменить JButton?

Е.Г.

image

...