ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
µÚÈýµç×ÓÊé ·µ»Ø±¾ÊéĿ¼ ¼ÓÈëÊéÇ© ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ¡ºÊղص½ÎÒµÄä¯ÀÀÆ÷¡»

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ106²¿·Ö

¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡


¡¡£¨²»ÏñBadTechnuque¡£java¡¡ÄÇÑùÎÒÃÇÄÜʱʱ¿Ì¿Ì¿´µ½£©¡£¡¡¡¡

ÊÔÑéÕâ¸ö³ÌÐòÊÇÊ®·ÖµÄÓнÌÓýÒâÒåµÄ£¬ÒòΪÎÒÃÇѧϰÁËÐí¶àµÄ¹ØÓÚÔÚJava¡¡ÖÐʼþ·¢ÉúµÄ·½·¨¡£Ò»ÔòËüչʾÁË¡¡

´ó¶àÊý¿ª´°¿ÚµÄϵͳÖÐÉè¼ÆÉϵÄ覴ãºËüÏ൱µÄÄÑÒÔÈ¥µ¥»÷ºÍÊÍ·ÅÊó±ê£¬³ý·ÇÒƶ¯Ëü£¬²¢ÇÒµ±ÎÒÃÇʵ¼ÊÉÏÕý¡¡

ÊÔͼÓÃÊó±êµ¥»÷ÔÚijÎïÌåÉÏʱ¿ª´°¿ÚµÄ»á³£³£ÈÏΪÎÒÃÇÊÇÔÚÍ϶¯¡£Ò»¸ö½â¾öÕâ¸öÎÊÌâµÄ·½°¸ÊÇʹÓá¡

mousePressed£¨£©¡¡Êó±ê°´Ï·½·¨ºÍmouseReleased£¨£©Êó±êÊÍ·Å·½·¨È¥´úÌæmouseClicked£¨£©¡¡Êó±êµ¥»÷·½·¨£¬È»ºó¡¡

ÅжÏÊÇ·ñÈ¥µ÷ÓÃÎÒÃÇ×Ô¼ºµÄÒÔʱ¼äºÍ4¡¡¸öÏñËصÄÊó±êÖͺó×÷Óõġ°mouseReallyClicked£¨£©ÕæʵµÄÊó±êµ¥»÷¡±¡¡

·½·¨¡£¡¡¡¡

¡¡¡¡

5¡£¡¡õ¿½ÅµÄ×é¼þ¼Ì³Ð¡¡¡¡

ÁíÒ»ÖÖ×ö·¨Êǵ÷Óá¡enableEvent£¨£©·½·¨£¬²¢½«ÓëÏ£Íû¿ØÖƵÄʼþ¶ÔÓ¦µÄÄ£ÐÍ´«µÝ¸øËü£¨Ðí¶à²Î¿¼ÊéÖж¼ÔøÌá¡¡

¼°ÕâÖÖ×ö·¨£©¡£ÕâÑù×ö»áÔì³ÉÄÇЩʼþ±»·¢ËÍÖÁÀÏʽ·½·¨£¨¾¡¹ÜËüÃǶÔJava¡¡1¡£1¡¡À´ËµÊÇеģ©£¬²¢²ÉÓÃÏó¡¡

processFocusEvent£¨£©ÕâÑùµÄÃû×Ö¡£Ò²±ØÐëÒª¼Çסµ÷Óûù´¡Àà°æ±¾¡£ÏÂÃæÊÇËü¿´ÆðÀ´µÄÑù×Ó¡£¡¡¡¡

¡¡¡¡

//£º¡¡BadTechnique¡£java¡¡¡¡

//¡¡It's¡¡possible¡¡to¡¡override¡¡ponents¡¡this¡¡way£»¡¡¡¡

//¡¡but¡¡the¡¡listener¡¡approach¡¡is¡¡much¡¡better£»¡¡so¡¡¡¡

//¡¡why¡¡would¡¡you£¿¡¡¡¡

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

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

¡¡¡¡

class¡¡Display¡¡£û¡¡¡¡

¡¡¡¡public¡¡static¡¡final¡¡int¡¡¡¡

¡¡¡¡¡¡¡¡EVENT¡¡=¡¡0£»¡¡PONENT¡¡=¡¡1£»¡¡¡¡

¡¡¡¡¡¡¡¡MOUSE¡¡=¡¡2£»¡¡MOUSE_MOVE¡¡=¡¡3£»¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡443¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡445¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡FOCUS¡¡=¡¡4£»¡¡KEY¡¡=¡¡5£»¡¡ACTION¡¡=¡¡6£»¡¡¡¡

¡¡¡¡¡¡¡¡LAST¡¡=¡¡7£»¡¡¡¡

¡¡¡¡public¡¡String£§£§¡¡evnt£»¡¡¡¡

¡¡¡¡Display£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡evnt¡¡=¡¡new¡¡String£§LAST£§£»¡¡¡¡

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

¡¡¡¡¡¡¡¡¡¡¡¡evnt£§i£§¡¡=¡¡new¡¡String£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡show£¨Graphics¡¡g£©¡¡£û¡¡¡¡

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

¡¡¡¡¡¡¡¡¡¡¡¡g¡£drawString£¨evnt£§i£§£»¡¡0£»¡¡10¡¡*¡¡i¡¡£«¡¡10£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡EnabledPanel¡¡extends¡¡Panel¡¡£û¡¡¡¡

¡¡¡¡Color¡¡c£»¡¡¡¡

¡¡¡¡int¡¡id£»¡¡¡¡

¡¡¡¡Display¡¡display¡¡=¡¡new¡¡Display£¨£©£»¡¡¡¡

¡¡¡¡public¡¡EnabledPanel£¨int¡¡i£»¡¡Color¡¡mc£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡id¡¡=¡¡i£»¡¡¡¡

¡¡¡¡¡¡¡¡c¡¡=¡¡mc£»¡¡¡¡

¡¡¡¡¡¡¡¡setLayout£¨new¡¡BorderLayout£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡add£¨new¡¡MyButton£¨£©£»¡¡BorderLayout¡£SOUTH£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Type¡¡checking¡¡is¡¡lost¡£¡¡You¡¡can¡¡enable¡¡and¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡process¡¡events¡¡that¡¡the¡¡ponent¡¡doesn't¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡capture£º¡¡¡¡

¡¡¡¡¡¡¡¡enableEvents£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Panel¡¡doesn't¡¡handle¡¡these£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£ACTION_EVENT_MASK¡¡£ü¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£ADJUSTMENT_EVENT_MASK¡¡£ü¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£ITEM_EVENT_MASK¡¡£ü¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£TEXT_EVENT_MASK¡¡£ü¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£WINDOW_EVENT_MASK¡¡£ü¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Panel¡¡can¡¡handle¡¡these£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£PONENT_EVENT_MASK¡¡£ü¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£FOCUS_EVENT_MASK¡¡£ü¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£KEY_EVENT_MASK¡¡£ü¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£MOUSE_EVENT_MASK¡¡£ü¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£MOUSE_MOTION_EVENT_MASK¡¡£ü¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡AWTEvent¡£CONTAINER_EVENT_MASK£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡You¡¡can¡¡enable¡¡an¡¡event¡¡without¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡overriding¡¡its¡¡process¡¡method¡£¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡//¡¡To¡¡eliminate¡¡flicker£º¡¡¡¡

¡¡¡¡public¡¡void¡¡update£¨Graphics¡¡g£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡paint£¨g£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡paint£¨Graphics¡¡¡¡g£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡g¡£setColor£¨c£©£»¡¡¡¡

¡¡¡¡¡¡¡¡Dimension¡¡s¡¡=¡¡getSize£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡g¡£fillRect£¨0£»¡¡0£»¡¡s¡£width£»¡¡s¡£height£©£»¡¡¡¡

¡¡¡¡¡¡¡¡g¡£setColor£¨Color¡£black£©£»¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡444¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡446¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡display¡£show£¨g£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡processEvent£¨AWTEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£EVENT£§=¡¡e¡£toString£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡repaint£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡super¡£processEvent£¨e£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡¡¡

¡¡¡¡processponentEvent£¨ponentEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡switch£¨e¡£getID£¨£©£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡ponentEvent¡£PONENT_MOVED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£PONENT£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨ponent¡¡moved¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡ponentEvent¡£PONENT_RESIZED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£PONENT£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨ponent¡¡resized¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡ponentEvent¡£PONENT_HIDDEN£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£PONENT£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨ponent¡¡hidden¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡ponentEvent¡£PONENT_SHOWN£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£PONENT£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨ponent¡¡shown¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡default£º¡¡¡¡

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

¡¡¡¡¡¡¡¡repaint£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Must¡¡always¡¡remember¡¡to¡¡call¡¡the¡¡¡¨super¡¨¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡version¡¡of¡¡whatever¡¡you¡¡override£º¡¡¡¡

¡¡¡¡¡¡¡¡super¡£processponentEvent£¨e£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡processFocusEvent£¨FocusEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡switch£¨e¡£getID£¨£©£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡FocusEvent¡£FOCUS_GAINED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£FOCUS£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨FOCUS¡¡gained¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡FocusEvent¡£FOCUS_LOST£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£FOCUS£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨FOCUS¡¡lost¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡default£º¡¡¡¡

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

¡¡¡¡¡¡¡¡repaint£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡super¡£processFocusEvent£¨e£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡processKeyEvent£¨KeyEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡switch£¨e¡£getID£¨£©£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡KeyEvent¡£KEY_PRESSED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£KEY£§¡¡=¡¡¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡445¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡447¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨KEY¡¡pressed£º¡¡¡¨£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡KeyEvent¡£KEY_RELEASED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£KEY£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨KEY¡¡released£º¡¡¡¨£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡KeyEvent¡£KEY_TYPED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£KEY£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨KEY¡¡typed£º¡¡¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡default£º¡¡¡¡

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

¡¡¡¡¡¡¡¡int¡¡code¡¡=¡¡e¡£getKeyCode£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£KEY£§¡¡£«=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡KeyEvent¡£getKeyText£¨code£©£»¡¡¡¡

¡¡¡¡¡¡¡¡repaint£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡super¡£processKeyEvent£¨e£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡processMouseEvent£¨MouseEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡switch£¨e¡£getID£¨£©£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡MouseEvent¡£MOUSE_CLICKED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡requestFocus£¨£©£»¡¡//¡¡Get¡¡FOCUS¡¡on¡¡click¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£MOUSE£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨MOUSE¡¡clicked¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡MouseEvent¡£MOUSE_PRESSED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£MOUSE£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨MOUSE¡¡pressed¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡MouseEvent¡£MOUSE_RELEASED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£MOUSE£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨MOUSE¡¡released¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡MouseEvent¡£MOUSE_ENTERED£º¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£MOUSE£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨MOUSE¡¡entered¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡MouseEvent¡£MOUSE_EXITED£º¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£MOUSE£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨MOUSE¡¡exited¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡default£º¡¡¡¡

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

¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£MOUSE£§¡¡£«=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨£»¡¡x¡¡=¡¡¡¨¡¡£«¡¡e¡£getX£¨£©¡¡£«¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨£»¡¡y¡¡=¡¡¡¨¡¡£«¡¡e¡£getY¡¡£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡repaint£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡super¡£processMouseEvent£¨e£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡¡¡

¡¡¡¡processMouseMotionEvent£¨MouseEvent¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡switch£¨e¡£getID£¨£©£©¡¡£û¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡446¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡448¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡MouseEvent¡£MOUSE_DRAGGED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£MOUSE_MOVE£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨MOUSE¡¡dragged¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break¡¡£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡case¡¡MouseEvent¡£MOUSE_MOVED£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£MOUSE_MOVE£§¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨MOUSE¡¡moved¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡default£º¡¡¡¡

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

¡¡¡¡¡¡¡¡display¡£evnt£§Display¡£MOUSE_MOVE£§¡¡£«=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨£»¡¡x¡¡=¡¡¡¨¡¡£«¡¡e¡£getX£¨£©¡¡£«¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨£»¡¡y¡¡=¡¡¡¨¡¡£«¡¡e¡£getY£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡repaint£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡super¡£processMouseMotionEvent£¨e£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡MyButton¡¡extends¡¡Button¡¡£û¡¡¡¡

¡¡¡¡int¡¡clickCounter£»¡¡¡¡

¡¡¡¡String¡¡label¡¡=¡¡¡¨¡¨£»¡¡¡¡

¡¡¡¡public¡¡MyButton£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡enableEvents£¨AWTEvent¡£ACTION_EVENT_MASK£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡paint£¨Graphics¡¡g£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡g¡£setColor£¨Color¡£green£©£»¡¡¡¡

¡¡¡¡¡¡¡¡Dimension¡¡s¡¡=¡¡getSize£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡g¡£fillRect£¨0£»¡¡0£»¡¡s¡£width£»¡¡s¡£height£©£»¡¡¡¡

¡¡¡¡¡¡¡¡g¡£setColor£¨Color¡£black£©£»¡¡¡¡

¡¡¡¡¡¡¡¡g¡£drawRect£¨0£»¡¡0£»¡¡s¡£width¡¡1£»¡¡s¡£height¡¡1£©£»¡¡¡¡

¡¡¡¡¡¡¡¡drawLabel£¨g£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡private¡¡void¡¡drawLabel£¨Graphics¡¡g£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡FontMetrics¡¡fm¡¡=¡¡g¡£getFontMetrics£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡int¡¡width¡¡=¡¡fm¡£stringWidth£¨label£©£»¡¡¡¡

¡¡¡¡¡¡¡¡int¡¡height¡¡=¡¡fm¡£getHeight£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡int¡¡ascent¡¡=¡¡fm¡£getAscent£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡int¡¡leading¡¡=¡¡fm¡£getLeading£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡int¡¡horizMargin¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£¨getSize£¨£©¡£width¡¡width£©/2£»¡¡¡¡

¡¡¡¡¡¡¡¡int¡¡verMargin¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£¨getSize£¨£©¡£height¡¡height£©/2£»¡¡¡¡

¡¡¡¡¡¡¡¡g¡£setColor£¨Color¡£red£©£»¡¡¡¡

¡¡¡¡¡¡¡¡g¡£drawString£¨label£»¡¡horizMargin£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡verMargin¡¡£«¡¡ascent¡¡£«¡¡leading£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡¡¡¡¡clickCounter£«£«£»¡¡¡¡

¡¡¡¡¡¡¡¡label¡¡=¡¡¡¨click¡¡#¡¨¡¡£«¡¡clickCounter¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨¡¡¡¨¡¡£«¡¡e¡£toString£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡repaint£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡super¡£processActionEvent£¨e£©£»¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡447¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡449¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡¡¡¡¡

public¡¡class¡¡BadTechnique¡¡extends¡¡Frame¡¡£û¡¡¡¡

¡¡¡¡BadTechnique£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡setLayout£¨new¡¡GridLayout£¨2£»2£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡add£¨new¡¡EnabledPanel£¨1£»¡¡Color¡£cyan£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡add£¨new¡¡EnabledPanel£¨2£»¡¡Color¡£lightGray£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡add£¨new¡¡EnabledPanel£¨3£»¡¡Color¡£yellow£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡You¡¡can¡¡also¡¡do¡¡it¡¡for¡¡Windows£º¡¡¡¡

¡¡¡¡¡¡¡¡enableEvents£¨AWTEvent¡£WINDOW_EVENT_MASK£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡¡¡¡¡System¡£out¡£println£¨e£©£»¡¡¡¡

¡¡¡¡¡¡¡¡if£¨e¡£getID£¨£©¡¡==¡¡WindowEvent¡£WINDOW_CLOSING£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println¡¡£¨¡¨Window¡¡Closing¡¨£©£»¡¡¡¡

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

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

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡¡¡¡¡Frame¡¡f¡¡=¡¡new¡¡BadTechnique£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡f¡£setTitle£¨¡¨Bad¡¡Technique¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡f¡£setSize£¨700£»700£©£»¡¡¡¡

¡¡¡¡¡¡¡¡f¡£setVisible£¨true£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡

µÄÈ·£¬ËüÄܹ»¹¤×÷¡£µ«È´ÊµÔÚÌ«õ¿½Å£¬¶øÇÒºÜÄѱàд¡¢ÔĶÁ¡¢µ÷ÊÔ¡¢Î¬»¤ÒÔ¼°ÔÙÉú¡£¼ÈÈ»Èç´Ë£¬ÎªÊ²Ã´»¹²»¡¡

ʹÓÃÄÚ²¿½ÓÊÕÆ÷ÀàÄØ£¿¡¡¡¡



13¡£17¡¡Java¡¡1¡£1¡¡Óû§½Ó¿Ú¡¡API¡¡¡¡¡¡



Java¡¡1¡£1¡¡°æͬÑùÔö¼ÓÁËһЩÖØÒªµÄй¦ÄÜ£¬°üÀ¨½¹µã±éÀú£¬×ÀÃæÉ«²Ê·ÃÎÊ£¬´òÓ¡¡°É³ÏäÄÚ¡±¼°ÔçÆڵļôÌù°å¡¡

Ö§³Ö¡£¡¡¡¡

½¹µã±éÀúÊ®·ÖµÄ¼òµ¥£¬ÒòΪËüÏÔÈ»´æÔÚÓÚAWT¡¡¿âÀïµÄ×é¼þ²¢ÇÒÎÒÃDz»±ØΪʹËü¹¤×÷¶øÈ¥×öÈκÎÊ¡£Èç¹ûÎÒÃÇ¡¡

ÖÆÔìÎÒÃÇ×Ô¼º×é¼þ²¢ÇÒÏëʹËüÃÇÈ¥´¦Àí½¹µã±éÀú£¬ÎÒÃǹýÔØ¡¡isFocusTraversable£¨£©ÒÔʹËü·µ»ØÕæÖµ¡£Èç¹ûÎÒ¡¡

ÃÇÏëÔÚÒ»¸öÊó±êµ¥»÷Éϲ¶×½¼üÅ̽¹µã£¬ÎÒÃÇ¿ÉÒÔ²¶×½Êó±ê°´ÏÂʼþ²¢ÇÒµ÷ÓÃrequestFocus£¨£©ÐèÇ󽹵㷽·¨¡£¡¡¡¡



13¡£17¡£1¡¡×ÀÃæÑÕÉ«¡¡¡¡



ÀûÓÃ×ÀÃæÑÕÉ«£¬ÎÒÃÇ¿ÉÖªµÀµ±Ç°Óû§×ÀÃ涼ÓÐÄÄЩÑÕÉ«Ñ¡Ôñ¡£ÕâÑùÒ»À´£¬¾Í¿ÉÔÚ±ØÒªµÄʱºòͨ¹ý×Ô¼ºµÄ³ÌÐò¡¡

À´ÔËÓÃÄÇЩÑÕÉ«¡£ÑÕÉ«¶¼»áµÃÒÔ×Ô¶¯³õʼ»¯£¬²¢ÖÃÓÚSystemColor¡¡µÄstatic¡¡³ÉÔ±ÖУ¬ËùÒÔÒª×öµÄΨһÊÂÇé¾Í¡¡

ÊǶÁÈ¡×Ô¼º¸ÐÐËȤµÄ³ÉÔ±¡£¸÷ÖÖÃû×ÖµÄÒâÒåÊDz»ÑÔ¶øÓ÷µÄ£ºdesktop£¬activeCaption£¬¡¡¡¡

activeCaptionText£¬activeCaptionBorder£¬¡¡inactiveCapt¡¡ion£¬¡¡inactiveCaptionText£¬¡¡

inactiveCaptionBorder£¬¡¡window£¬¡¡windowBorder¡¡£¬¡¡windowText£¬¡¡menu£¬menuText£¬text£¬¡¡textText£¬¡¡¡¡

textHighlight£¬¡¡textHighlightText¡¡£¬textInactiveText£¬control£¬¡¡controlText£¬¡¡controlHighlight£¬¡¡

controlLtHighlight£¬controlShadow¡¡£¬controlDkShadow£¬¡¡scrollbar£¬¡¡info¡¡£¨ÓÃÓÚ°ïÖú£©ÒÔ¼°infoText¡¡

¡¡£¨ÓÃÓÚ°ïÖúÎÄ×Ö£©¡£¡¡¡¡



13¡£17¡£2¡¡´òÓ¡¡¡¡¡



·Ç³£²»ÐÒ£¬´òӡʱûÓжàÉÙÊÂÇéÊÇ¿ÉÒÔ×Ô¶¯½øÐеġ£Ïà·´£¬ÎªÍê³É´òÓ¡£¬ÎÒÃDZØÐë¾­Àú´óÁ¿»úеµÄ¡¢·Ç¡¡OO¡¡

¡¡£¨ÃæÏò¶ÔÏ󣩵IJ½Öè¡£µ«´òÓ¡Ò»¸öͼÐλ¯µÄ×é¼þʱ£¬¿ÉÄܶàÉÙÓеã¶ù×Ô¶¯»¯µÄÒâ˼£ºÄ¬ÈÏÇé¿öÏ£¬print£¨£©·½¡¡

·¨»áµ÷ÓÃpaint£¨£©À´Íê³É×Ô¼ºµÄ¹¤×÷¡£´ó¶àÊýʱºòÕⶼÒѾ­×ã¹»ÁË£¬µ«¼ÙÈ绹Ïë×öһЩÌرðµÄÊÂÇ飬¾Í±ØÐë¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡448¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡450¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

ÖªµÀÒ³ÃæµÄ¼¸ºÎ³ß´ç¡£¡¡¡¡

ÏÂÃæÕâ¸öÀý×ÓÍ
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨1£© ²È£¨1£©
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡