Underline StyleConstant in a different colour with AttributeSet
Asked Answered
P

1

1

I am implementing a spellchecker and wondered if there is an easy/obvious way of underlining some text in a different colour such as Red.

I have everything set up and underlining with the following code (also sets the color of the text):

private AttributeSet getAttributeSet(Color foregroundColor) {
    SimpleAttributeSet attrs = new SimpleAttributeSet();
    StyleConstants.setForeground(attrs, foregroundColor);
    StyleConstants.setUnderline(attrs, true);
}

The above code sets the word to blue but also underlines it in blue. I need to be able to change the underline and also its thickness. Any ideas?

Thanks,

Peregrine answered 29/2, 2012 at 16:13 Comment(0)
J
5

Use e.g this http://java-sl.com/tip_colored_strikethrough.html

Just modify it a bit to achieve underline rather than strikethrough.

But from my experience to highlight spellcheck errors it's better to define custom highlight painter

See also http://www.java2s.com/Code/Java/Swing-JFC/JTextPaneHighlightExample.htm

Jospeh answered 1/3, 2012 at 6:7 Comment(2)
Thanks for the reply. In the custom highlight painter, what goes into: paintLayer(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c, View view)Peregrine
+1 Thats useful ... just used it for underlines by making simple change to the y equation.Cognate

© 2022 - 2024 — McMap. All rights reserved.