我正在创建一个使用链接(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));
}
}
如何在不删除下划线的情况下在链接中实施突出显示的文本?我是否需要更改它们以继承其他子类?
一种方法是将HTML formatting用于按钮文本。当然,对于最终用户而言,最令人吃惊的路径是按钮看起来像按钮,链接看起来像链接(即不是按钮)。
我应该为链接子类化其他东西吗?
对于链接,我通常会使用JTextField
,如我对How to change JButton?的回答所示