【发布时间】:2013-01-01 01:09:46
【问题描述】:
我正在寻找一种从宽度推断 Java AWT 字体大小的方法。例如,我知道我想在 100 像素内写“hello world”。我知道我正在使用字体“Times”,样式为Font.PLAIN,并且我想获得最适合我给定宽度的 100 像素的字体大小。
我知道我可以循环计算它(类似于while(font.getSize() < panel.getWidth()),但说实话我觉得它不是很优雅。
【问题讨论】:
-
什么是“最适合面板宽度的字体大小”?
-
理想的大小取决于你要写的文字,除非你有一个固定宽度的字体。
-
是的,对不起,我忘了提到我也知道我想使用的字符串!我编辑我的帖子...
-
"..我觉得它不是很优雅。" 有时使用有效的东西是值得的,不管优雅。话虽如此,您可以简单地使用
AffineTransform来缩小和拉伸文本,如this answer。 -
感谢您的评论。当我说“不是很优雅”时,我实际上的意思是“对于它来说太膨胀了”(因为我必须在每次迭代时创建一个新的 Font 对象......)但是是的,我会看看 AffineTransform 对象似乎可以满足我的需求:)