首页 > 解决方案 > 类型 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());
    }
}

标签: javaeclipse

解决方案


创建Font内部绘图调用是个坏主意,因为每次调用它时,您都会创建一个新的Font. 您应该将其放入实例变量中或在构造函数中创建它,然后从那里简单地引用它。

然后,您还可以将该字体实例传递给getFontMetrics调用。

这里真正的问题是,它是对象getFontMetrics上的一个方法Graphics,而你没有在这里调用它。您需要g.getFontMetrics(font)改用。


推荐阅读