qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          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);

            }

          }

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

          以上代碼都是在文本編輯器中寫的,可能會有些許紕漏

          posted on 2011-09-21 23:24 順其自然EVO 閱讀(247) 評論(0)  編輯  收藏

          <2011年9月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 舟曲县| 江阴市| 二手房| 舒兰市| 无为县| 广丰县| 博乐市| 沙坪坝区| 邓州市| 武威市| 泉州市| 宁陕县| 北京市| 武城县| 西畴县| 锡林浩特市| 周至县| 牟定县| 漯河市| 广德县| 西青区| 怀化市| 大竹县| 乐昌市| 张家川| 伊吾县| 嘉义市| 息烽县| 菏泽市| 岢岚县| 绥阳县| 武清区| 鹤峰县| 搜索| 浦东新区| 泾阳县| 吉隆县| 和田县| 陵川县| 武宁县| 顺昌县|