java - 类型 infoPanel 的方法 getFontMetrics(Font) 未定义
问题描述
大家好,我正在尝试将一个面板的得分计数器添加到另一个面板。我已复制并粘贴代码,但收到此错误消息。对于 infoPanel 类型,方法 getFontMetrics(Font) 未定义。“getFontMetrics”是唯一用红色下划线的部分
public void draw(Graphics g) {
if (running) {
g.setColor(Color.red);
g.setFont(new Font("Times New Roman", Font.BOLD, 40));
FontMetrics metrics3 = getFontMetrics(g.getFont());
g.drawString("Score: " + applesEaten, (SCREEN_WIDTH - metrics3.stringWidth("Score: " + applesEaten)) / 2, g.getFont().getSize());
}
}
解决方案
创建Font
内部绘图调用是个坏主意,因为每次调用它时,您都会创建一个新的Font
. 您应该将其放入实例变量中或在构造函数中创建它,然后从那里简单地引用它。
然后,您还可以将该字体实例传递给getFontMetrics
调用。
这里真正的问题是,它是对象getFontMetrics
上的一个方法Graphics
,而你没有在这里调用它。您需要g.getFontMetrics(font)
改用。
推荐阅读
- node.js - Docker usb 热插拔
- javascript - 带有 CSFR 令牌的 Axios POST 请求被拒绝 - 401
- flutter - 错误只能在初始化器中访问静态成员
- sql - 如何将 rusqlite 的 Row::get 方法用于编译时我不知道的类型?
- php - Woocommerce:如何为 iframe 形成动态链接
- javascript - Set size of window in Jest and jest-dom and jsdom
- android - 期待此活动的 'android:screenOrientation="unspecified"' 或 '"fullSensor"'
- wordpress - 是否可以在不购买新主机的情况下将我的 WordPress 域移至 .com
- python - Mutliprocessing.starmap : 过滤
- git - Git 和 Github 存储库名称