2013-01-17 44 views
1

是否可以使用畫家或其他技術來自定義文本 使用合成器繪製控件?Synth覆蓋按鈕上的文本繪圖

我知道你可以在SynthPainter中實現paintButtonBorderpaintButtonBacground,但我想知道是否有辦法用文本來做到這一點?也許有一些解決方法?

回答

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中指定的顏色。