Java Graphics.drawString()字体作为JLabel

Java Graphics.drawString()字体作为JLabel,java,swing,graphics,fonts,jlabel,Java,Swing,Graphics,Fonts,Jlabel,如何使Graphics.drawString()获得与JLabel完全相同的字体 我已经尝试了在UIManager.getDefaults()中可以找到的所有字体,但即使我使用以下方法使字符串drawString()不像以前那样薄 ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); 看起来还是有点不同 UIManager.

如何使
Graphics.drawString()
获得与
JLabel
完全相同的字体

我已经尝试了在
UIManager.getDefaults()
中可以找到的所有字体,但即使我使用以下方法使字符串drawString()不像以前那样薄

((Graphics2D) g).setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

看起来还是有点不同

UIManager.getFont(“Label.font”)
应该可以在大多数外观下工作

新的JLabel().getFont()怎么样?

不简单也不完整(假设问题是如何在g.drawString中获得与JLabel内部相同的反序列化行为:-)-通常的解决方法是不使用g.drawString,而是使用配置了文本的JLabel,将其自身绘制到BuffereImage中并绘制图像。或者使用CellRenderPane,将标签压印到所需的位置/尺寸上。但即使使用这种字体,Graphics.drawString()的输出也与普通JLabelCan不一样。我假设您的调用
g.setFont(UIManager.getFont(“Label.font”)
?是的,当然是。java draw JLabel似乎与Graphics.drawString()有些不同;@Xmagic您“可以”花些时间阅读
BasicLabelUI
SwingUtilities
类,但在短期内,kleopatra的建议将更快地解决您的问题。@Xmagic请记住,sun包下的类是受限制的api,即不能在沙箱中使用b)不能保证稳定c)在其他供应商的JRE中不可用。如果你能忍受这些-很好的挖掘:-)