计时器
掌握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);
计时器