是否可以使用painter或其他一些技术来自定义带有合成器的控件上的文本绘制?
我知道你可以在 SynthPainter 中实现paintButtonBorder
和paintButtonBacground
,但我想知道有没有办法用文本做到这一点?也许一些解决方法?
通常你会创建一个SynthGraphicsUtils
子类,覆盖paintText(SynthContext ss, Graphics g, String text, Icon icon, int hAlign, int vAlign, int hTextPosition, int vTextPosition, int iconTextGap, int mnemonicIndex, int textOffset)
并从你的 button 方法返回一个子类的SynthStyle
实例getGraphicsUtils(SynthContext context)
。
无论如何,如果你要将绘画委托给超级实现,如果text
是在 HTML 中(以<html>
标签开头),请注意某些细节:
ss.getComponent().getText()
而不是text
.ss.getComponent().getForeground()
. 对于样式文本,这将匹配 HTML/CSS 中指定的颜色。