我正在创建一个简单的游戏,我想在每次移动后重新绘制棋盘。所以,在我调用 move() 之后,我想做的是:(顺便说一下,一个 View 是一个保存碎片的 JComponent;由于移动后碎片的数量发生了变化,因此需要重新绘制)
for(View v : views){
v.repaint();
}
它不工作。当我调用repaint()
单个视图时,它工作正常。我尝试使用paintImmediately
, and revalidate
, and update
... 在循环中没有任何作用。
有任何想法吗?提前致谢。
编辑:我应该补充一点,当调整窗口大小时,repaint() 确实会被调用,所以我知道 View 的 paintComponent 方法是有效的并且可以工作。它只是没有从循环中调用。当调试器单步执行循环时,它不会进入 repaint() 并且屏幕没有任何反应。