void (@LinkLabel String text) { HTMLEditorKit.Parser parse = new ParserDelegator(); final HighlightedText highlightedText = new HighlightedText(); try { parse.parse(new StringReader(text), new HTMLEditorKit.ParserCallback() { private TextAttributes currentAttributes; @Override public void handleText(char[] data, int pos) { highlightedText.appendText(data, currentAttributes); } @Override public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) { if (t == HTML.Tag.B) { currentAttributes = BOLD_ATTRIBUTES; } else if (t == HTML.Tag.A) { currentAttributes = myAnchorAttributes; } } @Override public void handleEndTag(HTML.Tag t, int pos) { currentAttributes = null; } }, false); } catch (IOException e) { LOG.error(e); } highlightedText.applyToComponent(this); updateOnTextChange(); }