Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java Graphics2D';抽绳';正在停止重新绘制()?_Java_Swing_Graphics - Fatal编程技术网

为什么Java Graphics2D';抽绳';正在停止重新绘制()?

为什么Java Graphics2D';抽绳';正在停止重新绘制()?,java,swing,graphics,Java,Swing,Graphics,我目前正在用JavaSwing创建一个游戏。我需要一个分数计数器,所以我使用Graphics2D方法drawString来绘制它 我删除了代码中所有不能改变问题的内容,最终我发现问题出在drawString方法上 这是我的完整代码:(Problem/src/defaultpackage/Problem.java) 我预计产出为: repaint paintcomponent draw repaint paintcomponent draw 等等。但是,在程序运行的前两秒钟,输出只是: repa

我目前正在用JavaSwing创建一个游戏。我需要一个分数计数器,所以我使用Graphics2D方法
drawString
来绘制它

我删除了代码中所有不能改变问题的内容,最终我发现问题出在
drawString
方法上

这是我的完整代码:(Problem/src/defaultpackage/Problem.java)

我预计产出为:

repaint
paintcomponent
draw
repaint
paintcomponent
draw
等等。但是,在程序运行的前两秒钟,输出只是:

repaint
repaint
repaint
在那两秒钟之后,一切正常


为什么会发生这种情况?

因为计时器每秒运行50次,所以在主线程完成GUI初始化之前会触发很多次

在GUI准备就绪之前调用
repaint()
不会导致调用
paintComponent()


如果在调用
setVisible(true)
之后才启动计时器,则会得到预期结果。

因为计时器每秒运行50次,所以在主线程完成GUI初始化之前会触发多次

在GUI准备就绪之前调用
repaint()
不会导致调用
paintComponent()


如果在调用
setVisible(true)
后才启动计时器,则会得到预期结果。

您知道GUI准备就绪需要多长时间吗?调用
setVisible(true)
后,GUI就准备就绪了。在此之前,任何东西都不可见,即需要重新绘制。您知道GUI准备就绪需要多长时间吗?当调用
setVisible(true)
时,GUI准备就绪。在此之前,任何东西都不可见,即需要重新绘制。但如果我用
fillRect
替换
drawString
,它会立即工作。为什么会这样?@DanDeg可能是因为
drawString
需要加载字体文件,这需要一分钟,但可以测量的时间量?可能就是这样。谢谢但是如果我用
fillRect
替换
drawString
,它会立即工作。为什么会这样?@DanDeg可能是因为
drawString
需要加载字体文件,这需要一分钟,但可以测量的时间量?可能就是这样。谢谢
repaint
repaint
repaint