我已经重写了扩展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/)。 –