【发布时间】:2013-01-17 10:36:43
【问题描述】:
是否可以使用画家或其他技术来自定义文本 使用合成器绘制控件?
我知道你可以在 SynthPainter 中实现 paintButtonBorder 和 paintButtonBacground,但我想知道有没有办法用文本来实现?也许有一些解决方法?
【问题讨论】:
是否可以使用画家或其他技术来自定义文本 使用合成器绘制控件?
我知道你可以在 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) 并从按钮SynthStyle 的getGraphicsUtils(SynthContext context) 方法返回您的子类的实例。
无论如何,如果您要将绘画委托给超级实现,如果text 是HTML(以<html> 标记开头),请注意某些细节:
ss.getComponent().getText() 而不是text。ss.getComponent().getForeground()。对于带样式的文本,这将匹配 HTML/CSS 中指定的颜色。【讨论】: