我试图以这种方式在屏幕上绘制文字:
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结合使用效果不佳?
答案 0 :(得分:0)
每次调用paint()时都会创建一个新的Font有点不经济(这种情况会发生很多),你可以将它移到你的构造函数中。并且字体应该更改为一些正统字体(Arial,Calibri等)
尝试g.setFont(new Font("Arial", Font.PLAIN, 8))