java - 合成器覆盖按钮上的文本绘制

标签 java synth

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

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

最佳答案

通常您会创建一个 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> 标签开头):

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

关于java - 合成器覆盖按钮上的文本绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14377127/

相关文章:

java - 获得最负双倍的正确方法

java - 在 AsyncTask 中改造调用

java - Android 上未发生 POST?

java - Nimbus 外观支持从 xml 加载配置吗

java - Synth - 将背景设置为 JFrame

java - 如何将 SynthLookAndFeel 与 xml 文件一起使用,其中 xml 文件路径将使用 getResourceAsStream 方法加载文件?

用于显示数组 1 中而非数组 2 中的数字的 Java 程序

java - 正则表达式 - 匹配不包含字符串的模式