我的项目突然冻结,我无法停止冻结的发生

时间:2018-10-31 19:11:54

标签: java swing

我最近一直在研究以下内容,在点击运行然后经过多个GUI之后,它将加载到运行游戏的Panal上,问题是它没有按照预期做。以下是给我带来麻烦的代码。我已经向我的IT老师寻求帮助,他也不知道怎么了。

create_synthetic_image

1 个答案:

答案 0 :(得分:0)

不知道这是否可以解决您的问题,但这是一些问题:

  1. 您正在重写Paint(...)方法。没有这种方法。有一个小写的paint(...)方法。但是,在使用Swing时,您应该覆盖paintComponent(...)方法。

  2. 绘画方法仅用于绘画,而不用于其他任何处理。您无法控制Swing何时调用paintComponent()方法,因此绘画方法应仅绘画类的当前状态,而不更改状态。所以:

    1. 不执行I / O。该方法应该是有效的。您不想继续读取文件
    2. 不要创建新对象
    3. 请勿更改您的类的属性(即firstForm,secondForm ...)
  3. 请勿使用while(...)循环进行动画处理。动画会发生得太快,您只会看到最终结果。相反,您应该使用Swing Timer来安排动画。我看到您在代码的其他地方使用了Timer。计时器不要使用1ms。计时器不够精确,会生成太多事件。最小值应为16左右,这将使您每秒获得60帧。