是否可以使用画家或其他一些技术来自定义文本 使用合成器绘制控件?
我知道你可以在 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)
方法。
无论如何,如果您要将绘画委托(delegate)给 super 实现,请注意某些细节,如果 text
HTML 格式(以 <html>
标签开头):
- super 实现将绘制
ss.getComponent().getText()
而不是text
. - super 实现将在绘制之前手动设置文本颜色。对于无样式文本,这将是
ss.getComponent().getForeground()
。对于样式文本,这将与 HTML/CSS 中指定的颜色匹配。
关于java - 合成器覆盖按钮上的文本绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14377127/