突出显示链接

Posted

技术标签:

【中文标题】突出显示链接【英文标题】:Highlighting Links 【发布时间】:2011-12-24 02:05:47 【问题描述】:

我正在创建一个帮助系统,它使用链接(一个 JButton 扩展)来展开和折叠带有 JLabels 的子面板。链接和可折叠面板有效,但我无法实现我的查找对话框。我希望能够突出显示用户搜索的部分文本。我认为我使用文本属性来为链接中的文本添加下划线会影响我突出显示文本部分的能力,但我不确定如何以不同的方式进行操作。这是我的链接子类的链接类的代码:

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】:

一种方法是使用html formatting 作为按钮文本。当然,最终用户最不意外的路径是按钮看起来像按钮而链接看起来像链接(即不是按钮)。


我应该为链接子类化其他东西吗?

对于链接,我通常使用JTextField,如我对How to change JButton?的回答所示

例如

【讨论】:

“按钮看起来像按钮,链接看起来像链接”是什么意思? 链接和按钮在您看来是一样的吗?你不明白哪一部分? 我的链接是 JButton 的子类,看起来像链接。我应该为链接子类化其他东西吗? 也许我低估了您的按钮看起来像链接的程度(如果它不是 SSCCE,我不会仔细检查代码)。无论如何,请参阅我的答案的编辑。

以上是关于突出显示链接的主要内容,如果未能解决你的问题,请参考以下文章

FullCalendar - 获取外部链接以突出显示现有事件

突出显示单个页面的 wordpress 导航链接

UITextView带有可点击链接但没有文字突出显示

突出显示反应路由器 v4 中的默认链接

Asp.Net Mvc 突出显示当前页面链接技术?

CodeIgniter:如何“突出显示”用户当前所在页面的链接?