我用java写了个连连看,其他部分都完成了,就是在显示连线时有问题,我希望的处理过程是这样的:
1、判断用户选中的两个方块(实际上是两个JButton)能否消除
2、如果能消除的话,显示这两个JButton之间的连线(我用的是图片),连线显示500毫秒。
3、500毫秒之后,连线自动消失,那两个方块也随之消失(就是把背景色变成底色)。
整个过程我是放在mouseClicked事件中的,必要代码如下:// 如果能消除的话
if (isClearable) {
         // 显示连线
displayTracks();
         Thread.sleep(500);
         // 清除连线
         clearTracks();
         // 清除方块
clear();
}/**
 * 显示连线轨迹
 */
private void displayTracks() {
       ……
       button.setIcon(new ImageIcon(image));
       button.updateUI();
}
现在情况是,执行到Thread.sleep(500)语句时,并没有即时显示连线,而是暂停之后直接就清除了,所以看不到。怎样才能做到在暂停之前就显示连线?我在网上也查了不少资料,updateUI()、repaint()、panel.revalidate()、invalidate()之后再validate()……这些方法都试过了,就是做不到实时刷新,我实在是没辙了,请各位帮帮我吧,给个大致的思路就行。我在工作中主要是做j2ee,Swing开发还是第一次。