我正在创建一个帮助系统,它使用链接(一个JButton扩展)来扩展和折叠其中包含JLabel的子面板。链接和可折叠面板工作,但我在实现我的查找对话框时遇到了麻烦。我希望能够突出显示用户搜索的部分文本。我认为我使用文本属性来强调链接中的文本是在弄乱我突出文本部分的能力,但我不确定如何以不同的方式做到这一点。这是我的链接类子类的代码:
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));
}
}
如何在不删除下划线的情况下在链接中实现突出显示文本?我是否需要将它们更改为继承其他内容?先谢谢!
答案 0 :(得分:3)
一种方法是使用HTML formatting作为按钮文本。当然,如果按钮看起来像按钮而链接看起来像链接(即不是按钮),那么最终用户最不会感到惊讶的路径。
我应该为链接继承其他内容吗?
对于链接,我通常会使用JTextField
,如我对How to change JButton?