我已經重寫了擴展JToggleButton的paintComponent方法,以便在按鈕切換時可以使用TexturePaint填充文本。我遇到的問題是我似乎無法使用相同的字體繪製文本,因爲我的外觀和感覺正在使用默認設置。我試過g2d.setFont(this.getFont()); ,其中「this」是我正在使用的按鈕。字體很接近,但在繪製時顯示的比默認文字更大膽。有沒有更好的方式來繪製文本,使其看起來與默認相同,除了顏色?提前致謝!在java中繪製文本,外觀和感覺問題
4
A
回答
4
如果您正在覆蓋隨後的paintComponent()方法的圖形OBJ ect應該已經配置爲具有切換按鈕的字體。差異可能是由於抗鋸齒,這是默認打開的。
我發現了一些代碼,在非常有限的測試中適用於我。嘗試在的paintComponent()方法如下:
Graphics2D g2 = (Graphics2D)g.create();
Toolkit toolkit = Toolkit.getDefaultToolkit();
Map map = (Map)(toolkit.getDesktopProperty("awt.font.desktophints"));
if (map != null)
{
g2.addRenderingHints(map);
}
g2.drawString(...);
g2.dispose();
我被警告在此公告 - How to set text above and below a JButton icon? - 這不會在所有平臺和LAF的工作。該評論還提供了關於如何繪製文本的建議解決方案。
3
這個問題是相似的,提供了一個答案:How do I get the default font for Swing JTabbedPane labels?
我不是很確定的關鍵是什麼,但下面這個問題的答案,你可能也想嘗試:
UIManager.getLookAndFeelDefaults().getFont("ToggleButton.font");
編輯
這不是鏈接問題的代碼片段,但經過一小段測試後,它似乎等同於:
UIManager.getDefaults().getFont("ToggleButton.font");
這是鏈接問題中給出的代碼。
EDIT 2
我想我已經找到了解決辦法。返回默認的僅僅是一個普通的字體,我身邊這讓與線樣品中:
this.setFont(UIManager.getDefaults().getFont("ToggleButton.font").deriveFont(this.getFont().getStyle(), this.getFont().getSize()));
我的建議(做,不是醜)是增加一些私人性質的默認字體樣式和大小你的類(你可以將它們設置在構造函數):
fontStyle = this.getFont().getStyle();
fontSize = this.getFont().getSize();
然後你可以用清理:
this.setFont(UIManager.getDefaults().getFont("ToggleButton.font").deriveFont(this.fontStyle, this.fontSize));
相關問題
- 1. 在.NET中使用本機外觀和感覺繪製文本
- 2. Java - 外觀和感覺問題
- 3. Java物質外觀和感覺問題
- 4. Java FX外觀和感覺的問題
- 5. 在java中的外觀和感覺
- 6. Quaqua外觀和感覺問題
- 7. Icefaces 1.8外觀和感覺問題
- 8. 的外觀和感覺SEAGLASS的外觀和感覺異常
- 9. java的外觀和感覺和主要
- 10. JTable和外觀和感覺
- 11. itunes like java的外觀和感覺
- 12. Java的外觀和感覺JTabbedPane
- 13. 好看的Java Swing外觀和感覺?
- 14. 忽略默認外觀和感覺Java
- 15. 無法設置Java外觀和感覺
- 16. JMenu問題與侏儒的本地外觀和感覺
- 17. eclipse外觀和感覺定製
- 18. JTable外觀和感覺
- 19. SEAGLASS的外觀和感覺
- 20. DatePicker的外觀和感覺
- 21. JScrollpane外觀和感覺
- 22. Extjs的外觀和感覺
- 23. Oyoaha在Java Swing中的外觀和感覺
- 24. 在java中添加一些系統外觀和感覺
- 25. 使用CSS跨瀏覽器的外觀和感覺問題
- 26. JFrame和Nimbus外觀和感覺
- 27. 如何在Nimbus外觀中添加JTable標題的內容外觀和感覺
- 28. 在Python中定製Django的外觀和感覺
- 29. ubuntu使用什麼外觀和感覺?
- 30. iOS可選外觀和感覺
爲了更快得到更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –