为什么setFont需要这么多时间?

时间:2014-07-26 12:48:35

标签: java user-interface graphics fonts

我试图以这种方式在屏幕上绘制文字:

    System.out.println(System.currentTimeMillis() + " 2.2 ");      //debug
    g.setFont(thisfont);
    System.out.println(System.currentTimeMillis() + " 2.2.1 ");    //debug
    g.drawString("hallo", x, y);
    System.out.println(System.currentTimeMillis() + " 2.2.2 ");    //debug
    g.drawString("hallo2", x, y2);
    System.out.println(System.currentTimeMillis() + " 2.2.3 ");    //debug

根据我的调试面板,设置字体和第一个drawString之间的时间是问题(9秒)。这是调试面板上的文本:

1406377881939 2.2 
1406377881939 2.2.1 
1406377890799 2.2.2  
1406377890800 2.2.3 

为什么这需要这么长时间,我做错了什么或只是因为setfont与drawString结合使用效果不佳?

1 个答案:

答案 0 :(得分:0)

每次调用paint()时都会创建一个新的Font有点不经济(这种情况会发生很多),你可以将它移到你的构造函数中。并且字体应该更改为一些正统字体(Arial,Calibri等)

尝试g.setFont(new Font("Arial", Font.PLAIN, 8))

read more...