java--多线程实现计数器

同时开始5个线程,用各自的文本框显示count,和按钮控制count的自加

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

 

class Ticker extends Thread{

  private Button t=new Button("toggle");

  private TextField tf=new TextField(10);

  //开关控制count的变化

  private runFlag=true;

  private int count=0;

 

  class Stop implements ActionListener{

    @Override

    public void actionPerformed(ActionEvent e){

      runFlag=!runFlag;

    }

  }

  public Ticker(Container c){

    t.addActionListener(new Stop());

    //Panel容器

    Panel p=new Panel();

    p.add(t);

    p.add(tf);

    c.add(p); 

  }

 

  @Override

  public void run(){

    while(true){

      try(

        Thread.currentThread().sleep(200);

      }catch(InterruptedException e){

        e.printStackTrace();

      }

      if(runFlag)

        tf.setText(Integer.toString(++count));

    }

  }

}

 

public class Counter extends Applet{

 

  private Button start=new Button("Start");

  private boolean started=false;

  private int size=0;

  private Ticker[] ts;

  @Override

  public void init(){

    start.addActionListener(new Start());

    add(start);

    ts=new Ticker[size];

    for(int i=0;i<size;i++){

      ts[i]=new Ticker(Counter.this);

    }

  }

 

  class Start implements ActionListener{

    @Override

    public void actionPerformed(ActionEvent e){

      if(!started){

        started=true;

        for(int i=0;i<size;i++){

          ts[i].start();

        }

      }

    }

  }

 

  public static void main(String[] args){

    Counter c=new Counter();

    Frame frame=new Frame("程序片");

    frame.addWindowListener(

      new WindowAdapter(){

        @Override

        public void windowClosing(WindowEvent e){

          System.exit(0);

        }

      }

    );

    frame.setSize(300,c.size*50);

    frame.add(c,BorderLayout.CENTER);

    c.init();

    c.start();

    frame.setVisible(true);

  }

}

 

 

/**--注意--**/

以上代码都是在文本编辑器中写的,可能会有些许纰漏

 

转载于:https://www.cnblogs.com/jico/archive/2011/01/06/1928994.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值