setCharacterAttributes

setCharacterAttributes

我的应用程序中有一个JTextPane,并且为各种单词/字母准备了一些样式。这些样式通过setCharacterAttributes应用。现在,我计划为某些样式的背景设置样式:如果一种样式定义了背景(例如灰色),并且我想柔化拐角(圆角,即3px)。

有没有一种方法可以添加在setCharacterAttributes中使用的特殊渲染器?或者,您是否建议通过HighlightPainter添加pane.getHighlighter().addHighlight(...)

最佳答案

好的,您的问题不是很清楚,但是如果我理解正确,您打算自定义字符背景属性的默认行为。您描述了两种方法,一种可能比另一种容易得多。

1)基于字符属性(复数):您需要通过覆盖paint中的javax.swing.text.GlyphView方法来定义行为。然后,您将需要更改EditorKit的ViewFactory,以将更改考虑在内。我不推荐这种方法。

2)基于突出显示(更简单):您需要定义一个新的javax.swing.text.Highlighter.HighlightPainter,以绘制所需的圆形边框。然后,您需要找到设置背景的每组文本。您删除背景,而是添加自定义荧光笔。您可以优化过程,但是我认为您已经掌握了这一部分。

10-07 15:53