【发布时间】:2017-10-05 19:44:58
【问题描述】:
我有JFrame,里面有一个JTextArea。
Font font = new Font("monospaced", Font.PLAIN, 14);
textarea.setFont(font);
由于字体是等宽字体,所有字符的宽度和高度都相同。
我想知道这个宽度和高度是多少,以像素为单位。
为此,我可以使用font.getStringBounds,但我没有Graphics 上下文可以传递给它。 frame.getGraphics() 返回null。
如何找到字符的大小?可以在没有Graphics 实例的情况下完成吗?无论如何,我不想要它的实例。我只想知道我的角色有多大。
【问题讨论】:
-
您的问题不清楚,您能否提供更多信息与代码的空部分。
-
字体“大小”将基于渲染目标的上下文。一般来说,你想看看
Graphics#getFontMetrics或一些这样的相关方法。如果您没有可用的Graphics上下文,您可以创建一个BufferedImage并使用它。那么问题就变成了,你为什么想要这些信息? -
@MadProgrammer 谢谢你-我会调查
BufferedImage。仅供参考,我正在使用JFrame/JTextarea来渲染基于文本的游戏,因此我将使用此信息来缩放文本并以字符为单位获取窗口的尺寸。 -
@SamDev
JFrame#getGraphics()是返回null的方法。我在实例化JFrame后立即执行此操作。
标签: java swing fonts jpanel jtextarea