【问题标题】:Synth override text drawing on button合成器覆盖按钮上的文本绘制
【发布时间】:2013-01-17 10:36:43
【问题描述】:

是否可以使用画家或其他技术来自定义文本 使用合成器绘制控件?

我知道你可以在 SynthPainter 中实现 paintButtonBorderpaintButtonBacground,但我想知道有没有办法用文本来实现?也许有一些解决方法?

【问题讨论】:

    标签: java synth


    【解决方案1】:

    通常您会创建一个SynthGraphicsUtils 子类,覆盖paintText(SynthContext ss, Graphics g, String text, Icon icon, int hAlign, int vAlign, int hTextPosition, int vTextPosition, int iconTextGap, int mnemonicIndex, int textOffset) 并从按钮SynthStylegetGraphicsUtils(SynthContext context) 方法返回您的子类的实例。

    无论如何,如果您要将绘画委托给超级实现,如果text 是HTML(以<html> 标记开头),请注意某些细节:

    1. 超级实现将绘制ss.getComponent().getText() 而不是text
    2. 超级实现会在绘制前手动设置文本颜色。对于无样式的文本,这将是 ss.getComponent().getForeground()。对于带样式的文本,这将匹配 HTML/CSS 中指定的颜色。

    【讨论】:

      猜你喜欢
      • 2022-06-23
      • 2018-04-28
      • 2013-05-27
      • 2014-03-07
      • 1970-01-01
      • 2020-12-11
      • 1970-01-01
      • 2018-10-02
      • 2018-05-01
      相关资源
      最近更新 更多