Java setFont会减慢程序的执行速度

Java setFont会减慢程序的执行速度,java,fonts,awt,Java,Fonts,Awt,我有一个类,我注意到如果我使用setFont(…)它会减慢整个程序的执行速度 public class MenuState extends GameState { private String[] options = { "Start ", "Options","Quit"}; private int currentSelection; private Font font; protected MenuState(GameStateManager gameStateManager) {

我有一个类,我注意到如果我使用
setFont(…)
它会减慢整个程序的执行速度

public class MenuState extends GameState {

private String[] options = { "Start ", "Options","Quit"};
private int currentSelection;
private Font font;

protected MenuState(GameStateManager gameStateManager) {
    super(gameStateManager);
    init();
}

public void init() {
    currentSelection = 0;
    font = new Font("Times New Roman", Font.BOLD, 30);
}

public void update() {

}

public void render(Graphics graphic) {
    for (int i = 0; i < options.length; i++) {
        if (i == currentSelection) {
            graphic.setColor(Color.GREEN);
        } else {
            graphic.setColor(Color.BLACK);
        }
        if (i == 0) {
            graphic.setFont(font);
            graphic.drawString(options[i],
                    GuiDimension.WIDTH.getValue() / 2 - 47, 500);
        }
        if (i == 1) {
            graphic.setFont(font);
            graphic.drawString(options[i],
                    GuiDimension.WIDTH.getValue() / 2 - 107, 550);
        }
        if (i == 2) {
            graphic.setFont(font);
            graphic.drawString(options[i],
                    GuiDimension.WIDTH.getValue() / 2 - 47, 600);
        }

    }

}
public类MenuState扩展游戏状态{
私有字符串[]选项={“开始”、“选项”、“退出”};
私人选择;
专用字体;
受保护的菜单状态(GameStateManager GameStateManager){
超级(游戏经理);
init();
}
公共void init(){
currentSelection=0;
字体=新字体(“Times new Roman”,font.BOLD,30);
}
公共无效更新(){
}
公共空间渲染(图形){
对于(int i=0;i
现在,如果我评论这一行:

  • graphic.setFont(font);
执行正常,否则执行缓慢


有人能告诉我原因吗?

不知道--但是你需要调用
setFont()
三次吗?为什么不把它从for循环中移出来,只调用一次呢?就是这样!谢谢,我没想过。