gpt4 book ai didi

Java:获取 FontMetrics 实例的更友好的方式

转载 作者:搜寻专家 更新时间:2023-11-01 01:04:32 25 4
gpt4 key购买 nike

有没有比

更友好的方法来获取 FontMetrics 的实例
FontMetrics fm = Graphics.getFontMetrics(Font);

我讨厌这种方式,因为下面的例子:

如果你想在游戏中创建一个菜单,并且你想要所有的菜单项都在屏幕的中央,你需要 fontmetrics。但是,大多数情况下,菜单项是可点击的。所以我创建了一个 Rectangles 数组,所有的矩形都围绕着项目,所以当鼠标被按下时,我可以简单地使用

for (int i = 0; i < rects.length; i++)
if (rects[i].contains(mouseX, mouseY)) { ... }

但是要创建矩形,我还需要 FontMetrics 作为它们的坐标。所以这意味着我必须在我的菜单的绘制方法中构建我所有的矩形。

所以我想要一种获取 FontMetrics 的方法,这样我就可以在构造函数调用的方法中构造 Rectangles。

最佳答案

对我来说最简单的方法是:

Font font = new Font("Helvetica",Font.PLAIN,12);
Canvas c = new Canvas();
FontMetrics fm = c.getFontMetrics(font);

好处:

  1. 如果您调用 c.getGraphics() 它将返回 null(因此没有图形对象)
  2. 这个( Canvas )也可以在 headless 模式下工作。

现在你可以轻松获取高度和宽度...

关于Java:获取 FontMetrics 实例的更友好的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2753514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com