Java课程设计 201521123078

时间:2024-04-28 15:07:18

计时器

掌握java图形界面操作以及多线程技术。

1.Mythread1

写一个类Mythread1实现Runnable,当需要开一个线程时就是用这个类。其中的run()通过标记flag和循环实现时间的改变。

2.按钮

2.1begin

在操作按钮添加事件监听器,begin按钮中实现的是重头开始计时,但是开始时出现连按begin出现多个线程并行,由于Thread.wait();Thread.inturrupt();Thread.notify();等线程操作在学习了很久后还是无法准确运用到其中,就用了标记的方法;

mythread1.flag=false;

mythread1=new Mythread1(x,pastsecond,remainsecond,time);

p=new Thread(mythread1);

p.start();

第一次begin普通开始,接下来通过标记方法,使得前一个线程中断(mythread1.flag=false;),开始一个新的线程。之所以分第一次和之后是因为第一次未新建前mythread是null;在输入框中还需捕获输入异常,提示error;,捕获到就不开始新线程并中断旧线程。

2.2stop

直接通过标记mythread1.flag=false停止run();

2.3contiue

因为唤醒旧线程暂时无法有效达到目的,所以新建线程p=new Thread(mythread1);其中mythread1是当前的,改变flag;开始线程即可实现继续计时,需要注意:不能连按contiue,因为它并没有像begin改变mythread1,之前只是通过stop中断了旧的线程,意味着旧线程还在,连按就会出现多个线程并行的错误。在这里使用了使按钮失效的方法,即只有按下stop时,contiue按钮才会变亮。

2.4hide and show

改变字体颜色

2.5exit

System.exit(0);

Java课程设计 201521123078

Java课程设计 201521123078

计时器