在实现这个功能中我用到了swing中的一个ProgressBar类,这是界面的进度条组件,此外因为我是在五子棋运行的同时有计时的功能,所以此外还需要使用到多线程。
我想要达到的效果是给黑白两方固定总时间十分钟,也就是说到黑方落子时计时,落完子后时间暂停,到白方的时间落子同样开始计时。
我的设计思路是创建两个线程对象,黑方和白方时间各独立一个线程,当一方落子时,这方的线程暂停,另一方的线程继续开始。
这里面的困扰我许久的地方是在线程暂停与继续的实现,以及是倘若我的五子棋结束一局重新开始的话线程要重新开始从十分钟计时。这是关键的run代码
可以看到,这里关键是使用两个boolean变量,并创建了两个方法,每次我暂停只需要调用暂停方法,run方法里i就无法改变了,调用reset方法就能使当前for循环结束,进入下一次完整的for循环,起到重新开始的作用。
到这里,这部分的功能就基本实现了。关于这部分问题解决办法欢迎共同讨论!
Java——给五子棋添加时间进度条(多线程)
最新推荐文章于 2024-09-23 22:36:07 发布