ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡ÔĶÁ¹ý³Ì·¢ÏÖÈκδíÎóÇë¸æËßÎÒÃÇ£¬Ð»Ð»£¡£¡ ±¨¸æ´íÎó
Ò»ÊÀÊé³Ç ·µ»Ø±¾ÊéĿ¼ ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ½øÈëÊé°É ¼ÓÈëÊéÇ©

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ160ÕÂ

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡




¿ÉÒÔ×Ô¶¯ÕÕÁÏËü¡£ÔÚrun£¨£©ÖУ¬¿É¿´µ½¶Ôt¡¡µÄ·ÃÎÊÊÇÖ±½Ó½øÐеģ¬ËƺõËüÊÇSeparateSubTask¡¡µÄÒ»¸ö×ֶΡ£¡¡

¸¸ÀàÖеÄt¡¡×Ö¶ÎÏÖÔÚ¿ÉÒÔ±ä³É¡¡private£¬ÒòΪ¡¡SeparateSubTask¡¡ÄÜÔÚδ»ñÈκÎÌØÊâÐí¿ÉµÄÇ°ÌáÏÂ×ÔÓɵطÃÎÊ¡¡

Ëü¡ª¡ª¶øÇÒÎÞÂÛÈçºÎ¶¼¸Ã¾¡¿ÉÄܵذÑ×ֶαä³É¡°Ë½ÓС±ÊôÐÔ£¬ÒÔ·ÀÀ´×ÔÀàÍâµÄijÖÖÁ¦Á¿²»É÷µØ¸Ä±äËüÃÇ¡£¡¡¡¡

ÎÞÂÛÔÚʲôʱºò£¬Ö»Òª×¢Òâµ½ÀàÏ໥֮¼ä½áºÏµÃ±È½Ï½ôÃÜ£¬¾Í¿É¿¼ÂÇÀûÓÃÄÚ²¿ÀàÀ´¸ÄÉÆ´úÂëµÄ±àдÓëά»¤¡£¡¡¡¡



14¡£1¡£3¡¡ÓÃÖ÷ÀàºÏ²¢Ï̡߳¡¡¡



ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒÃÇ¿´µ½Ïß³ÌÀࣨThread£©Óë³ÌÐòµÄÖ÷ÀࣨMain¡¡£©ÊÇ·Ö¸ô¿ªµÄ¡£ÕâÑù×ö·Ç³£ºÏÀí£¬¶øÇÒÒס¡

ÓÚÀí½â¡£È»¶ø£¬»¹ÓÐÁíÒ»ÖÖ·½Ê½Ò²ÊǾ­³£ÒªÓõ½µÄ¡£¾¡¹ÜËü²»Ê®·ÖÃ÷È·£¬µ«Ò»°ã¶¼Òª¸ü¼ò½àһЩ£¨ÕâÒ²½âÊÍ¡¡

ÁËËüΪʲôʮ·ÖÁ÷ÐУ©¡£Í¨¹ý½«Ö÷³ÌÐòÀà±ä³ÉÒ»¸öỊ̈߳¬ÕâÖÖÐÎʽ¿É½«Ö÷³ÌÐòÀàÓëÏß³ÌÀàºÏ²¢µ½Ò»Æð¡£ÓÉÓÚ¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡493¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡495¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¶ÔÒ»¸ö¡¡GUI¡¡³ÌÐòÀ´Ëµ£¬Ö÷³ÌÐòÀà±ØÐë´ÓFrame¡¡»òApplet¡¡¼Ì³Ð£¬ËùÒÔ±ØÐëÓÃÒ»¸ö½Ó¿Ú¼ÓÈë¶îÍâµÄ¹¦ÄÜ¡£Õâ¸ö½Ó¡¡

¿Ú½Ð×÷Runnable¡¡£¬ÆäÖаüº¬ÁËÓëThread¡¡Ò»ÖµĻù±¾·½·¨¡£ÊÂʵÉÏ£¬Thread¡¡Ò²ÊµÏÖÁËRunnable¡¡£¬ËüÖ»Ö¸³öÓС¡

Ò»¸örun£¨£©·½·¨¡£¡¡¡¡

¶ÔºÏ²¢ºóµÄ³ÌÐò£¯Ïß³ÌÀ´Ëµ£¬ËüµÄÓ÷¨²»ÊÇÊ®·ÖÃ÷È·¡£µ±ÎÒÃÇÆô¶¯³ÌÐòʱ£¬»á´´½¨Ò»¸öRunnable¡¡£¨¿ÉÔËÐС¡

µÄ£©¶ÔÏ󣬵«²»»á×ÔÐÐÆô¶¯Ï̡߳£Ï̵߳ÄÆô¶¯±ØÐëÃ÷È·½øÐС£ÏÂÃæÕâ¸ö³ÌÐòÏòÎÒÃÇÑÝʾÁËÕâÒ»µã£¬ËüÔÙÏÖÁË¡¡

Counter2¡¡µÄ¹¦ÄÜ£º¡¡¡¡

¡¡¡¡

//£º¡¡Counter3¡£java¡¡¡¡

//¡¡Using¡¡the¡¡Runnable¡¡interface¡¡to¡¡turn¡¡the¡¡¡¡¡¡

//¡¡main¡¡class¡¡into¡¡a¡¡thread¡£¡¡¡¡

import¡¡java¡£awt¡£*£»¡¡¡¡

import¡¡java¡£awt¡£event¡£*£»¡¡¡¡

import¡¡java¡£applet¡£*£»¡¡¡¡

¡¡¡¡

public¡¡class¡¡Counter3¡¡¡¡¡¡

¡¡¡¡¡¡¡¡extends¡¡Applet¡¡implements¡¡Runnable¡¡£û¡¡¡¡

¡¡¡¡private¡¡int¡¡count¡¡=¡¡0£»¡¡¡¡

¡¡¡¡private¡¡boolean¡¡runFlag¡¡=¡¡true£»¡¡¡¡

¡¡¡¡private¡¡Thread¡¡selfThread¡¡=¡¡null£»¡¡¡¡

¡¡¡¡private¡¡Button¡¡¡¡¡¡

¡¡¡¡¡¡¡¡onOff¡¡=¡¡new¡¡Button£¨¡¨Toggle¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡start¡¡=¡¡new¡¡Button£¨¡¨Start¡¨£©£»¡¡¡¡

¡¡¡¡private¡¡TextField¡¡t¡¡=¡¡new¡¡TextField£¨10£©£»¡¡¡¡

¡¡¡¡public¡¡void¡¡init£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡add£¨t£©£»¡¡¡¡

¡¡¡¡¡¡¡¡start¡£addActionListener£¨new¡¡StartL£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡add£¨start£©£»¡¡¡¡

¡¡¡¡¡¡¡¡onOff¡£addActionListener£¨new¡¡OnOffL£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡add£¨onOff£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡run£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡while¡¡£¨true£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡selfThread¡£sleep£¨100£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch¡¡£¨InterruptedException¡¡e£©£û£ý¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡if£¨runFlag£©¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡t¡£setText£¨Integer¡£toString£¨count£«£«£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡class¡¡StartL¡¡implements¡¡ActionListener¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡public¡¡void¡¡actionPerformed£¨ActionEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡if£¨selfThread¡¡==¡¡null£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡selfThread¡¡=¡¡new¡¡Thread£¨Counter3¡£this£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡selfThread¡£start£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡class¡¡OnOffL¡¡implements¡¡ActionListener¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡public¡¡void¡¡actionPerformed£¨ActionEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡runFlag¡¡=¡¡£¡runFlag£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡494¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡496¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡Counter3¡¡applet¡¡=¡¡new¡¡Counter3£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡Frame¡¡aFrame¡¡=¡¡new¡¡Frame£¨¡¨Counter3¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡aFrame¡£addWindowListener£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡new¡¡WindowAdapter£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡public¡¡void¡¡windowClosing£¨WindowEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£exit£¨0£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý£©£»¡¡¡¡

¡¡¡¡¡¡¡¡aFrame¡£add£¨applet£»¡¡BorderLayout¡£CENTER£©£»¡¡¡¡

¡¡¡¡¡¡¡¡aFrame¡£setSize£¨300£»200£©£»¡¡¡¡

¡¡¡¡¡¡¡¡applet¡£init£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡applet¡£start£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡aFrame¡£setVisible£¨true£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

ÏÖÔÚrun£¨£©Î»ÓÚÀàÄÚ£¬µ«ËüÔÚ¡¡init£¨£©½áÊøÒÔºóÈÔ´¦ÔÚ¡°Ë¯Ãß¡±×´Ì¬¡£Èô°´ÏÂÆô¶¯°´Å¥£¬Ï̱߳ã»áÓöàÉÙÓÐЩ¡¡

êÓÃÁµÄ±í´ï·½Ê½´´½¨£¨ÈôÏß³ÌÉв»´æÔÚ£©£º¡¡¡¡

new¡¡Thread£¨Counter3¡£this£©£»¡¡¡¡

ÈôijÑù¶«Î÷ÓÐÒ»¸ö¡¡Runnable¡¡½Ó¿Ú£¬Êµ¼ÊÖ»ÊÇÒâζ×ÅËüÓÐÒ»¸örun£¨£©·½·¨£¬µ«²»´æÔÚÓëÖ®Ïà¹ØµÄÈκÎÌØÊⶫ¡¡

Î÷¡ª¡ªËü²»¾ßÓÐÈκÎÌìÉúµÄÏ̴߳¦ÀíÄÜÁ¦£¬ÕâÓëÄÇЩ´ÓThread¡¡¼Ì³ÐµÄÀàÊDz»Í¬µÄ¡£ËùÒÔΪÁË´ÓÒ»¸ö¡¡

Runnable¡¡¶ÔÏó²úÉúỊ̈߳¬±ØÐëµ¥¶À´´½¨Ò»¸öỊ̈߳¬²¢ÎªÆä´«µÝRunnable¡¡¶ÔÏ󣻿ÉΪÆäʹÓÃÒ»¸öÌØÊâµÄ¹¹½¨¡¡

Æ÷£¬²¢ÁîÆä²ÉÓÃÒ»¸öRunnable¡¡×÷Ϊ×Ô¼ºµÄ²ÎÊýʹÓá£Ëæºó±ã¿ÉΪÄǸöÏ̵߳÷Óá¡start£¨£©£¬ÈçÏÂËùʾ£º¡¡¡¡

selfThread¡£start£¨£©£»¡¡¡¡

ËüµÄ×÷ÓÃÊÇÖ´Ðг£¹æ³õʼ»¯²Ù×÷£¬È»ºóµ÷ÓÃrun£¨£©¡£¡¡¡¡

Runnable¡¡½Ó¿Ú×î´óµÄÒ»¸öÓŵãÊÇËùÓж«Î÷¶¼´ÓÊôÓÚÏàͬµÄÀà¡£ÈôÐè·ÃÎÊʲô¶«Î÷£¬Ö»Ðè¼òµ¥µØ·ÃÎÊËü¼´¿É£¬¡¡

²»ÐèÒªÉæ¼°Ò»¸ö¶ÀÁ¢µÄ¶ÔÏó¡£µ«ÎªÕâÖÖ±ãÀûÒ²ÊÇÒª¸¶³ö´ú¼ÛµÄ¡ª¡ªÖ»¿ÉΪÄǸöÌض¨µÄ¶ÔÏóÔËÐе¥¶ÀÒ»¸öÏ̡߳¡

¡¡£¨¾¡¹Ü¿É´´½¨ÄÇÖÖÀàÐ͵Ķà¸ö¶ÔÏ󣬻òÕßÔÚ²»Í¬µÄÀàÀï´´½¨ÆäËû¶ÔÏ󣩡£¡¡¡¡

×¢ÒâRunnable¡¡½Ó¿Ú±¾Éí²¢²»ÊÇÔì³ÉÕâÒ»ÏÞÖƵÄ×ï¿ý»öÊס£ËüÊÇÓÉÓÚ¡¡Runnable¡¡ÓëÎÒÃǵÄÖ÷ÀàºÏ²¢Ôì³ÉµÄ£¬Òò¡¡

Ϊÿ¸öÓ¦ÓÃÖ»ÄÜÖ÷ÀàµÄÒ»¸ö¶ÔÏ󡣡¡¡¡



14¡£1¡£4¡¡ÖÆ×÷¶à¸öÏ̡߳¡¡¡



ÏÖÔÚ¿¼ÂÇһϴ´½¨¶à¸ö²»Í¬µÄÏ̵߳ÄÎÊÌâ¡£ÎÒÃDz»¿ÉÓÃÇ°ÃæµÄÀý×ÓÀ´×öµ½ÕâÒ»µã£¬ËùÒÔ±ØÐëµ¹ÍË»ØÈ¥£¬ÀûÓá¡

´ÓThread¡¡¼Ì³ÐµÄ¶à¸ö¶ÀÁ¢ÀàÀ´·â×°run£¨£©¡£µ«ÕâÊÇÒ»ÖÖ¸ü³£¹æµÄ·½°¸£¬¶øÇÒ¸üÒ×Àí½â£¬ËùÒÔ¾¡¹ÜÇ°Àý½ÒʾÁË¡¡

ÎÒÃǾ­³£¶¼ÄÜ¿´µ½µÄ±àÂëÑùʽ£¬µ«²¢²»ÍƼöÔÚ´ó¶àÊýÇé¿ö϶¼ÄÇÑù×ö£¬ÒòΪËüÖ»ÊÇÉÔ΢¸´ÔÓһЩ£¬¶øÇÒÁé»î¡¡

ÐÔÉÔµÍһЩ¡£¡¡¡¡

ÏÂÃæÕâ¸öÀý×ÓÓüÆÊýÆ÷ºÍÇл»°´Å¥ÔÙÏÖÁËÇ°ÃæµÄ±àÂëÑùʽ¡£µ«ÕâÒ»´Î£¬Ò»¸öÌض¨¼ÆÊýÆ÷µÄËùÓÐÐÅÏ¢£¨°´Å¥ºÍ¡¡

Îı¾×ֶΣ©¶¼Î»ÓÚËü×Ô¼ºµÄ¡¢´ÓThread¡¡¼Ì³ÐµÄ¶ÔÏóÄÚ¡£Ticker¡¡ÖеÄËùÓÐ×ֶζ¼¾ßÓÐprivate¡¡£¨Ë½ÓУ©ÊôÐÔ£¬¡¡

ÕâÒâζ×ÅTicker¡¡µÄ¾ßÌåʵÏÖ·½°¸¿É¸ù¾Ýʵ¼ÊÇé¿öÈÎÒâÐ޸ģ¬ÆäÖаüÀ¨ÐÞ¸ÄÓÃÓÚ»ñÈ¡ºÍÏÔʾÐÅÏ¢µÄÊý¾Ý×é¼þµÄ¡¡

ÊýÁ¿¼°ÀàÐÍ¡£´´½¨ºÃÒ»¸öTicker¡¡¶ÔÏóÒԺ󣬹¹½¨Æ÷±ãÇëÇóÒ»¸ö¡¡AWT¡¡ÈÝÆ÷£¨Container£©µÄ¾ä±ú¡ª¡ªTicker¡¡Óá¡

×Ô¼ºµÄ¿ÉÊÓ×é¼þÌî³äÄǸöÈÝÆ÷¡£²ÉÓÃÕâÖÖ·½Ê½£¬ÒÔºóÒ»µ©¸Ä±äÁË¿ÉÊÓ×é¼þ£¬Ê¹ÓÃTicker¡¡µÄ´úÂë±ã²»ÐèÒªÁíÐС¡

ÐÞ¸ÄÒ»µÀ¡£¡¡¡¡

¡¡¡¡

//£º¡¡Counter4¡£java¡¡¡¡

//¡¡If¡¡you¡¡separate¡¡your¡¡thread¡¡from¡¡the¡¡main¡¡¡¡

//¡¡class£»¡¡you¡¡can¡¡have¡¡as¡¡many¡¡threads¡¡as¡¡you¡¡¡¡

//¡¡want¡£¡¡¡¡

import¡¡java¡£awt¡£*£»¡¡¡¡

import¡¡java¡£awt¡£event¡£*£»¡¡¡¡

import¡¡java¡£applet¡£*£»¡¡¡¡

¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡495¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡497¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

class¡¡Ticker¡¡extends¡¡Thread¡¡£û¡¡¡¡

¡¡¡¡private¡¡Button¡¡b¡¡=¡¡new¡¡Button£¨¡¨Toggle¡¨£©£»¡¡¡¡

¡¡¡¡private¡¡TextField¡¡t¡¡=¡¡new¡¡TextField£¨10£©£»¡¡¡¡

¡¡¡¡private¡¡int¡¡count¡¡=¡¡0£»¡¡¡¡

¡¡¡¡private¡¡boolean¡¡runFlag¡¡=¡¡true£»¡¡¡¡

¡¡¡¡public¡¡Ticker£¨Container¡¡c£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡b¡£addActionListener£¨new¡¡ToggleL£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡Panel¡¡p¡¡=¡¡new¡¡Panel£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡p¡£add£¨t£©£»¡¡¡¡

¡¡¡¡¡¡¡¡p¡£add£¨b£©£»¡¡¡¡

¡¡¡¡¡¡¡¡c¡£add£¨p£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡class¡¡ToggleL¡¡implements¡¡ActionListener¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡public¡¡void¡¡actionPerformed£¨ActionEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡runFlag¡¡=¡¡£¡runFlag£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡run£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡while¡¡£¨true£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡if£¨runFlag£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡t¡£setText£¨Integer¡£toString£¨count£«£«£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sleep£¨100£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch¡¡£¨InterruptedException¡¡e£©£û£ý¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

public¡¡class¡¡Counter4¡¡extends¡¡Applet¡¡£û¡¡¡¡

¡¡¡¡private¡¡Button¡¡start¡¡=¡¡new¡¡Button£¨¡¨Start¡¨£©£»¡¡¡¡

¡¡¡¡private¡¡boolean¡¡started¡¡=¡¡false£»¡¡¡¡

¡¡¡¡private¡¡Ticker£§£§¡¡s£»¡¡¡¡

¡¡¡¡private¡¡boolean¡¡isApplet¡¡=¡¡true£»¡¡¡¡

¡¡¡¡private¡¡int¡¡size£»¡¡¡¡

¡¡¡¡public¡¡void¡¡init£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Get¡¡parameter¡¡¡¨size¡¨¡¡from¡¡Web¡¡page£º¡¡¡¡

¡¡¡¡¡¡¡¡if£¨isApplet£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡size¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Integer¡£parseInt£¨getParameter£¨¡¨size¡¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡s¡¡=¡¡new¡¡Ticker£§size£§£»¡¡¡¡

¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡s¡£length£»¡¡i£«£«£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡s£§i£§¡¡=¡¡new¡¡Ticker£¨this£©£»¡¡¡¡

¡¡¡¡¡¡¡¡start¡£addActionListener£¨new¡¡StartL£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡add£¨start£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡class¡¡StartL¡¡implements¡¡ActionListener¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡public¡¡void¡¡actionPerformed£¨ActionEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡if£¨£¡started£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡started¡¡=¡¡true£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡s¡£length£»¡¡i£«£«£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡s£§i£§¡£start£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡496¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡498¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡Counter4¡¡applet¡¡=¡¡new¡¡Counter4£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡This¡¡isn't¡¡an¡¡applet£»¡¡so¡¡set¡¡the¡¡flag¡¡and¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡produce¡¡the¡¡parameter¡¡values¡¡from¡¡args£º¡¡¡¡

¡¡¡¡¡¡¡¡applet¡£isApplet¡¡=¡¡false£»¡¡¡¡

¡¡¡¡¡¡¡¡applet¡£size¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£¨args¡£length¡¡==¡¡0¡¡£¿¡¡5¡¡£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Integer¡£parseInt£¨args£§0£§£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡Frame¡¡aFrame¡¡=¡¡new¡¡Frame£¨¡¨Counter4¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡aFrame¡£addWindowListener£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡new¡¡WindowAdapter£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡public¡¡void¡¡windowClosing£¨WindowEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£exit£¨0£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý£©£»¡¡¡¡

¡¡¡¡¡¡¡¡aFrame¡£add£¨applet£»¡¡BorderLayout¡£CENTER£©£»¡¡¡¡

¡¡¡¡¡¡¡¡aFrame¡£setSize£¨200£»¡¡applet¡£size¡¡*¡¡50£©£»¡¡¡¡

¡¡¡¡¡¡¡¡applet¡£init£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡applet¡£start£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡aFrame¡£setVisible£¨true£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

Ticker¡¡²»½ö°üÀ¨ÁË×Ô¼ºµÄÏ̴߳¦Àí»úÖÆ£¬Ò²Ì
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨0£©
δÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡