我正在创建一个使用链接(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格式 。当然,对于最终用户而言,最令人惊讶的路径是按钮看起来像按钮,而链接看起来像链接(即不是按钮)。
我应该为链接子类化其他东西吗?
对于链接,我通常使用JTextField,如对如何更改JButton的回答所示 。