首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

多线程暂停跟控制(通过按钮控制暂停的4个小球)

2013-07-16 
多线程暂停和控制(通过按钮控制暂停的4个小球)一.任务:通过按钮控制暂停的4个小球;按一次按钮就改变一次状

多线程暂停和控制(通过按钮控制暂停的4个小球)
一.
任务:通过按钮控制暂停的4个小球;按一次按钮就改变一次状态。
方法说明:在按钮事件里控制线程对象的状态,调用对象的方法改变其状态。

二.思路与源代码:

基本思路:设置一个bool值控制线程里的画图部分,为真则继续画,为假就休眠(时间设短点即可,每隔一段时间就会再检查一次bool的值)。在休眠时让i递减,这样再开始时小球就会从原位置开始。

在主函数内开启4个线程。加一个按钮,给按钮加动作监听器。把4个线程传入监听器。在线程中创建一个公有方法改变线程的属性BOOL值,在监听器中调用,按一次按钮就改变一次。即可完成控制。

PS:小球的绘制在上篇中的程序的基础上修改。

源代码:


监听器:
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class BUAction3 implements ActionListener{
    private Graphics g;
    private boolean go;
    private Printthred3 p,p2,p3,p4;
    //重新构造方法,传入4个线程
    public BUAction3(Graphics g,boolean go,Printthred3 p,Printthred3 p2,Printthred3 p3,Printthred3 p4){
    this.g=g;
    this.go=go;
    this.p=p;
    this.p4=p4;
    this.p2=p2;
    this.p3=p3;
    }
    //修改线程中的go的值
public void actionPerformed(ActionEvent e) {   
p.changego();
p2.changego();
p3.changego();
p4.changego();

}

}

在如何修改线程的BOOL属性上纠结了一下,果然思路要清晰啊。

热点排行