为什么Java Graphics2D';抽绳';正在停止重新绘制()?
我目前正在用JavaSwing创建一个游戏。我需要一个分数计数器,所以我使用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
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