我正在构建一个棋盘游戏小程序,处理用户输入大致如下所示:
public void mousePressed(MouseEvent event) {
int row = event.getX() / (getSize().width / 8) ;
int column = event.getY() / (getSize().height / 8) ;
if(possibleMove(column, row) {
makeMove(column,row,whosTurn);
repaint();
start();
}
}
在人工输入之后,计算机选择一个移动并像这个方法一样调用 repaint() 和 start()。
但是屏幕似乎只有在计算机移动之后才会更新,所以在调用 start() 之后。这怎么会发生,因为 repaint() 在 start() 之前被调用?
我怀疑这可能是因为 repaint() 启动了一个新线程(是吗?),但它为什么要等待 start()?
当然,如果需要,我可以提供更多代码。