¹ØÓÚ×÷Õß

ÐÕÃû£ºÀî¹û

ÐÔ±ð£ºÄÐ

³öÉúÈÕÆÚ:1982-09-14

µØÇø:±±¾©-±±¾©

ÁªÏµµç»°:13811503147

QQ:4201436»é·ñ£ºÎ´»é
Óû§Ãû£ºgophinight
±ÊÃû£ºµ¶½£Ð¥
µØÇø£º ±±¾©-±±¾©
ÐÐÒµ£ºÆäËû

ÈÕÀú ¡¡ÄêÔÂÈÕ

ÈÕ Ò» ¶þ Èý ËÄ Îå Áù

¿ìËٵǼ

+ Óû§Ãû£º
+ ÃÜ¡¡Â룺

ÔÚÏßÁôÑÔ



J2MEµÄÅóÓÑ

ÎҵĺÃÓÑ

ijүүµÄ²©¿Í

http://www.blogcn.com/u2/82/27/weijiushun/index.html

·ÃÎÊͳ¼Æ£º
ÎÄÕ¸öÊý:122
ÆÀÂÛ¸öÊý:270
ÁôÑÔÌõÊý:15




Powered by BlogDriver 2.1

Ë­ÓëÕù·æµ¶½£Ð¥£¨³ÏÖ¿½á½»ÌìϺÃÓÑ£©

¡¡

³ÌÐòÔ±Ò»¸öµ×²ãµÄȺÌ壬ÓÐÈ˰ѳÌÐòÔ±¸ú¼ËÅ®Ïà±È£¬°ÑÎÒÃǵŤ×÷±È×÷ÊÇÂôÉí£¬³ÏÈ»£¬ÓÐÒ»¶¨µÄµÀÀí¡£Îҵķ£¬´ÓÒ»ÐÐÐдúÂëÖÐ×ß¹ýÀ´£¬´ÓÒ»¸ö¸öBugÖÐ×ß¹ýÀ´£¬´ÓÒ»ÌìÌì½ø²½ÖÐ×ß¹ýÀ´¡£»ØÊ×ÍûÈ¥£¬ÂúÄ¿²×È»¡£ ½ñÌìµÄÎÒ£¬Ëã³É¹¦£¬»¹ÊÇʧ°Ü£¬ËãÓÅÐ㣬»¹ÊÇÆ½Ó¹£¬ÎÒÏ룬×÷Ϊһ¸ö³ÌÐòÔ±£¬ÎÒÊÇÆ½Ó¹µÄ£¬µ«×÷Ϊһ¸öÅóÓÑ£¬ÎÒÊÇÓÅÐãµÄ¡£ ÒÔÎÒΪÓÑÕߣ¬ÎÒ»¶Ó­£¬±ÉÊÓÎÒÕߣ¬ÎÒÒà»¶Ó­£¬Ö§³ÖʹÎÒ½ø²½£¬±ÉÊÓʹÎÒ×ÔÊ¡¡£ ÎÒ×ÔÊÇÄÇÇï·çÖÐÒ»°Ñ»ÎÓÆ»ÎÓÆµÄµ¶£¬»®¿ªºñºñµÄÄàÍÁ¡£ ÓÐÔ¸ÒâºÍÎÒ½»Á÷µÄÅóÓÑ¿ÉÒÔ¸øÎÒ·¢Mail£ºgophinight@163.com

ÎÄÕÂ

»¶Ó­J2meµÄ°®ºÃÕß¹²Í¬Ñо¿¼¼ÊõÎÊÌâ ¡¡£¨×÷ÕßÖö¥£©
ÎÒµÄÓÊÏäÊÇgophinight@163.com£¬»¶Ó­J2meµÄ°®ºÃÕßÃÇÒ»ÆðÀ´¹²Í¬Ñо¿¼¼ÊõÎÊÌ⣬Èç¹ûÊÇÐÂѧÕßÓÐʲô¼¼ÊõÎÊÌ⣬¿ÉÒÔ¸øÎÒ·¢Óʼþ£¬Îһἰʱ»Ø¸´£¬¾¡Á¿¸øÄã½â´ð^_^

- ×÷Õߣº µ¶½£Ð¥ 2006Äê07ÔÂ19ÈÕ, ÐÇÆÚÈý 17:14¡¡ »Ø¸´£¨2£© |¡¡ ÒýÓã¨0£© ¼ÓÈ벩²É

J2ME¿ª·¢ÈëÃÅ ¡¡£¨×÷ÕßÖö¥£©
°¦£¬±¾À´Ïëдһ¸ö³¤Ò»Ð©µÄÎÄÕ£¬µ«Ô½Ð´Ô½ÂÒ£¬ËãÁË£¬¾ÍдÁËÒ»µãµãÌå»á£¬´ó¼Ò´ÕºÏ×Å¿´°É
                       J2ME¿ª·¢µÄһЩÌå»á
  J2ME·½Ã濪·¢µÄ×ÊÁÏ£¬È·ÊµÊÇÉÙÖ®ÓÖÉÙ£¬Ò»°ã¸øÐÂÊÖÍÆ¼öµÄ¶¼ÊÇÍõÉ­ÏÈÉúµÄ¡¶PDAÓëÊÖ»ú¿ª·¢ÈëÃÅ¡·Ò»Ê飬Ȼ¶ø¸ÃÊéÆäʵ²¢²»ÊʺÏÐÂÈËÔĶÁ£¬¸ÃÊéµÄǰ¼¸Õ»¨ÁËºÜ´óÆª·ùÀ´½²½âÃüÁîÐе÷ÊÔJ2ME³ÌÐòµÄ·½·¨ºÍºÜ¶àÒªµã£¬ÆäʵÕâЩ¶«Î÷£¬×÷Ϊһ¸ö³õ¼¶µÄJ2ME¿ª·¢ÕßÀ´Ëµ£¬ÍêȫûÓбØÒªÑ§Ï°ºÍÕÆÎÕ£¬·´¶øÖ»»á¸ø×Ô¼ºÆ½ÌíºÜ¶à¸ºµ£¡£ÏÖÔÚ×öJ2ME¿ª·¢£¬´ó¶à¶¼ÓÐÁËIDE£¨¼¯³É¿ª·¢»·¾³£©£¬±ÈÈçJB£¬EclipseʲôµÄ£¬¾ÍËãÊÇÓÃ×î¼òµ¥µÄWTK£¬Ò²²»ÐèÒª½øÐÐpathµÄÅäÖõȲÙ×÷£¬ËùÒÔ³õѧÕßÍêÈ«¿ÉÒÔÌø¹ýÕâЩÄÚÈÝ£¬Ö±½ÓÉÏÊÖ¡£ÎÒµÄÈÏΪ£¬×ö³ÌÐò¿ª·¢£¬ÖØÔÚʵ¼ù¾­Ñ飬¶ø²»ÊÇÀíÂÛÑо¿£¬Òò´Ë£¬ÐÂÈËÍêÈ«¿ÉÒÔÖ±½Ó´ÓJ2MEµÄ³ÌÐòÁ÷³ÌÈëÊÖ£¬Ö±½Ó½øÈ룬¶ø²»ÐèҪȥÁ˽âÌ«¶à»ù±¾¸ÅÄ±ÈÈçʲôÊÇAPI£¬Ê²Ã´ÊÇMIDP£¬Ê²Ã´ÊÇJDKµÈµÈ¡£ÕâЩ¶«Î÷ÎÒµ½ÏÖÔÚÒ²²»ÊǺÜÇå³þ£¬µ«²¢²»Ó°ÏìÎÒ½øÐпª·¢£¬ÎÒÊǽ²¾¿ÊµÓÃÖ÷ÒåµÄ£¬Òò´Ë£¬±¾ÎĵĻùµ÷¾ÍÔÚÓÚ½²ÊöһЩʵÓõĿª·¢·½·¨¡£ÁíÍâÊ×ÏÈÒªÉùÃ÷£º±¾ÎÄÖеÄÒ»Çпª·¢µ÷ÊÔ¶¼ÊÇÔÚWTK»·¾³Ï½øÐеģ¬Çë¶ÁÕß×¢Òâ¡£
Ò»£®Ñ§Ï°J2MEÐèÒªµÄ»ù´¡ÖªÊ¶
J2ME±¾ÉíÊÇJavaÓïÑÔµÄÒ»²¿·Ö£¬Òò´Ë£¬¶ÔJavaÓïÑÔÓÐÒ»¶¨Á˽âÊDZØÒªµÄ£¬¶øJavaÓïÑÔ±¾ÉíÊÇÃæÏò¶ÔÏó±à³ÌµÄÒ»ÖÖÓïÑÔ£¬Òò´Ë£¬¶ÔÀàÓë¶ÔÏóµÄ¸ÅÄîÒªÓбØÒªµÄÁ˽⣬¶øÕâЩÄÚÈÝÔÚ±¾ÎÄÖоͲ»½øÐнéÉÜÁË¡£ÁíÍ⣬±¾ÎÄÐÐÎÄÖжÔAPIµÄ½éÉܼܺòÂÔ£¬Òò´Ë£¬¶ÁÕßÓ¦¸Ã×Ô¼º¶à²éÔÄAPIÖеÄÏà¹ØÄÚÈÝ¡£
¶þ£®J2ME¿ª·¢»·¾³¼ò½é
J2MEµÄ¿ª·¢»·¾³ÈçǰÎÄËùÊö£¬Ä¿Ç°Ö÷ÒªÓÐJB£¬Eclipse£¬WTKÈýÖÖ·½Ê½£¬ÆäÖÐÇ°ÃæÁ½Õß¶¼ÊǼ¯³É¿ª·¢»·¾³£¬ÔÚ±à³ÌÉϱȽϷ½±ã£¬ÓÐÖÇÄÜÁªÏëµÈ¹¦ÄÜ£¬¶øWTKÏà¶ÔÖ»ÌṩÁËÊÖ¶¯±àÒëºÍ´ò°ü£¬²¢ÇÒûÓÐDebug¹¦ÄÜ¡£µ«WTK²»ÐèÒª¶àÓàµÄÅäÖ㬶Ը÷ÖÖÄ£ÄâÆ÷¿ÉÒÔ˵ÊǼ´²å¼´Ó㬶øÇÒÔÚWTKϵijÌÐòĿ¼¼ò½àÃ÷ÁË£¬·½±ã²éѯ¡£Õ⼸ÖÖ¿ª·¢»·¾³¸÷Óг¤¶Ì´¦£¬ËùÒÔ´ó¼Ò¿ÉÒÔ×Ô¼ºÑ¡Ôñ£¬²»¹ý¶ÔÐÂÊÖÀ´Ëµ£¬»¹Êǽ¨Òé²ÉÓÃWTK£¬ÒòΪ¸Õ½Ó´¥J2ME¿ª·¢£¬ÓëÆä°Ñʱ¼ä»¨ÔÚÅäÖÃÉÏ£¬»¹²»È绨ÔÚ±à³ÌÉÏ¡£
Èý£®J2ME³ÌÐòÁ÷³Ì
Îҵĸоõ£¬Ã¿ÃÅÓïÑÔ¶¼ÓÐ×Ô¼ºµÄ¹Ì¶¨¸ñʽ£¬¾Í¸úдÎÄÕµļ¸ÒªËØÒ»Ñù£¬×ÜÓпªÍ·£¬½áβµÈµÈ¡£¶øÁ˽âÒ»ÃÅÓïÑԵĸñʽ£¬ÊÇѧϰÕâÃÅÓïÑÔ×îÏÈÒªÕÆÎÕµÄÄÚÈÝ¡£
Èç¹û°Ñ³ÌÐòÁ÷³Ì±È×öÊÇÒ»¸ö¹ÜµÀ¹¤³ÌµÄ»°£¬ÄÇôÿÃÅÓïÑÔÀï¶¼ÓÐÒ»¸ö¹ÜµÀµÄÈë¿Ú£¬ÔÚJ2MEÀÕâ¸öÈë¿Ú¾ÍÊÇMIDletÀ࣬Õâ¸öÀàÒ»°ãÒ²³ÆÎªJ2MEµÄÖ÷À࣬ÿ¸ö³ÌÐò£¬¶¼ÓÐÒ»¸ö»ò¶à¸ö¹Ì¶¨µÄÖ÷À࣬ÔÚÕâÀÎÒÃÇ̸ֻһ°ãµÄÇé¿ö£¬¼´Ö»ÓÐÒ»¸öMIDletÖ÷ÀàµÄÇé¿ö£¬´ó¼Ò¿´API¼´¿ÉÖªµÀ£¬MIDletÀàÓм¸¸ö¹Ì¶¨·½·¨£¬startApp(),pauseApp(),destroyApp()£¬ÕâЩ·½·¨¾ÍÏñÊǹܵÀ¹¤³Ì£¨ÒÔϵĽ²ÊöÀÎÒ¶¼°Ñ±à³Ì±È×÷ÊǹܵÀ¹¤³Ì£©Öеö¹Ø¼ü·§ÃÅ£¬Ò»¸öJ2ME³ÌÐòÆô¶¯ºó£¬±ãÏȾ­ÀúMIDletµÄ¹¹Ôì·½·¨£¬È»ºó½øÈëstartApp()·½·¨£¬µ±ÓÐÌØÊâÇé¿ö¹ÒÆðµÄʱºò£¬±ã»á½øÈëpauseApp·½·¨£¬µ±³ÌÐò½áÊøÊ±£¬±ã¾­ÓÉdestroyApp·½·¨Í˳ö¡£Ò»¸öJ2ME³ÌÐò¿ÉÒÔûÓÐÆäËûÀ࣬µ«²»ÄÜûÓÐMIDletÀֻ࣬ҪÓÐÒ»¸öÍêÕûµÄÖ÷À࣬±ãÊÇÒ»¸öÍêÕûµÄJ2ME³ÌÐò¡£±ÈÈç·Ç³£¾«µäµÄ"HelloWorld"£¬±ãÖ»ÓÐÒ»¸öMIDlet¡£

ÎÒ¾õµÃ£¬J2MEʵ¼ÊÉÏÊÇÒ»¸öºÜ±ê×¼µÄ˳ÐòÁ÷³ÌÓïÑÔ£¬J2MEÖÐûÓÐÕæÕýµÄ¶àỊ̈߳¬ºÜ¶àÇé¿öÏ£¬Ò»¸öJ2ME³ÌÐòµÄÔËÐУ¬ÎÒÃǶ¼¿ÉÒÔ¶ÔËûµÄÁ÷³Ì½øÐÐÍêÈ«µÄ¸ú×Ù¡£ÕâÔÚµ÷ÊÔ·½ÃæÊǷdz£·½±ãµÄ¡£

ÔÚÕâÀﻹҪ½âÊÍÒ»µã£¬J2ME³ÌÐòÖУ¬ÆÁÄ»¶ÔÏóÊÇÒ»¸ö±È½ÏÖØÒªµÄ¶ÔÏó£¬ÄãµÄËùÓвÙ×÷£¬ÄãËùÒª±í´ïµÄÒâ˼£¬¶¼ÐèÒªÔÚÆÁÄ»ÉÏÃè»æ³öÀ´£¬Òò´Ë£¬¶ÔÆÁÄ»µÄ²Ù×÷Ò²ÊÇ×î»ù±¾ºÍ×îÖØÒªµÄÒ»¸ö²Ù×÷£¬Òò´Ë£¬J2ME³ÌÐòµÄ²Ù×÷Æäʵ¾ÍÊǶÔDisplayºÍDisplayÉϵÄDisplayable£¨°üÀ¨Form£¬TextBox£¬List£¬CanvasµÈµÈ£©¶ÔÏó½øÐпØÖÆ¡£Ò²¾ÍÊÇ˵£¬ÈóÌÐòÔÚºÏÊʵÄʱºò£¬°ÑÐèÒªµÄDisplayableÏÔʾÔÚÆÁÄ»ÉÏ¡£Ê¹Óõķ½·¨£¬¼´ÊÇDisplay.setCurrent()·½·¨¡£

ÔÚÆÁÄ»¶ÔÏóµÄ²Ù×÷ÉÏ£¬ÎÒÒª½âÊÍһϣ¬J2MEĬÈÏµÄÆÁĻֻÓÐÒ»¸ö£¬¼´Êǵ±Ç°ÆÁÄ»£¬ËùÓвÙ×÷¶¼ÊǶԵ±Ç°ÆÁÄ»½øÐвÙ×÷£¬Òò´Ë£¬µ±ÄãÔÚÖ÷ÀàÖн«Ò»¸öCanvas¶ÔÏóÉèÖÃΪµ±Ç°ÆÁÄ»ºó£¬ÔòÖ÷ÀàÒѾ­´¦ÓÚÍÑÆÁ״̬£¬ÍÑÆÁ״̬ϵĶÔÏóÎÞ·¨½øÐÐÖ±½Ó²Ù×÷¡£ÕâÒ»µãÐèҪעÒâ¡£ËùÓÐÍâ½çµÄ²Ù×÷¾ùÖ»ÄÜ×÷ÓÃÓÚµ±Ç°ÆÁÄ»ÉÏÏÔʾµÄDisplayable¶ÔÏó£¬ÎÞÂÛÊÇForm£¬List£¬»òÕßÊÇCanvas¡£´Ëʱ¶ÔÍÑÆÁÀàµÄ²Ù×÷Ö»ÄÜͨ¹ý¾²Ì¬·½·¨»òÕßÊǸÃÀàµÄÒ»¸öʵÀýÀ´½øÐС£

J2MEµÄÓÎÏ·ÖÐ×î¼òµ¥µÄÒ»ÖÖÓÎÏ·Á÷³ÌÊÇÕâÑù£¬¼´Ò»¸öÖ÷ÀàºÍÒ»¸öCanvasÀ࣬Ö÷ÀàÈë¿Ú´¦¶¨ÒåÒ»¸öCanvas¶ÔÏ󣬲¢ÇÒ´ËCanvas¶ÔÏó¼Ì³ÐÒ»¸öRunnable½Ó¿Ú£¬ÔÙ¶¨ÒåÒ»¸ö»ùÓڴ˶ÔÏóµÄỊ̈߳¬È»ºó½«´ËCanvas¶ÔÏóÉèΪµ±Ç°ÆÁÄ»¶ÔÏ󣬲¢Æô¶¯Ị̈߳¬¼´ÓÃÏ̵߳Ästart()·½·¨£¬Æô¶¯Ï̺߳ó£¬CanvasÀïµÄrun·½·¨±ã¿ªÊ¼ÔËÐУ¬¶ørun·½·¨Í¨³£ÒªÓÃrepaint()·½·¨À´Ë¢ÆÁ£¬Òò´ËÁ÷³Ì¾ÍÊǰ´paint()->run->paint().....ÕâÑùµÄ¹ý³ÌÍù¸´£¬ÆäÖÐÈç¹û»¹ÓмüÅÌÊäÈ룬ÔòkeyPressed()µÈ·½·¨¾Í´©²åÔÚÖм䡣»ù±¾ÉÏJ2MEµÄ³ÌÐò¾ÍÊǰ´ÕâÑùµÄÁ÷³ÌÀ´×ߣ¬Òò´ËÔÚ¿ª·¢ºÍµ÷ÊÔÖÐÖ»Òª¶ÔÕâ¸öÁ÷³Ì½øÐбØÒªµÄ¸ú×پͿÉÒÔÁË¡£
ËÄ£®J2MEÖг£ÓõÄÀà
J2MEÖг£ÓõÄÀàÓÐMIDlet£¬Form£¬List£¬Canvas£¬String£¬Command,GraphicsµÈµÈ¡£
ÆäÖÐGraphics×÷ΪÓÎÏ·¿ª·¢ÖеĺËÐÄÀ࣬×ÔÈ»ÐèÒªÊìÁ·µÄÕÆÎÕ¡£
ÔÚGraphicsÖÐÈçϵÄÖØÒª·½·¨ÐèÒªÕÆÎÕ£º
setColor(int ÉèÖõÄÑÕÉ«)
setFont(Font ÉèÖõÄ×ÖÌå)
drawRect(int Æðµã×ø±êx,int Æðµã×ø±êy,int ¿í,int ¸ß)
fillRect(int Æðµã×ø±êx,int Æðµã×ø±êy,int ¿í,int ¸ß)
drawImage(Image Òª»­µÄͼÐζÔÏó,int Æðµã×ø±êx,intÆðµã×ø±êy,int »ùµãÀàÐÍ)
drawLine(int Æðµã×ø±êx,intÆðµã×ø±êy,int ÖÕµã×ø±êx,int ÖÕµã×ø±êy)
drawString(String ҪдµÄ×Ö·û´®, int Æðµã×ø±êx,intÆðµã×ø±êy,int »ùµãÀàÐÍ)
ÔÚÕâÀïҪ˵Ã÷Ò»ÏÂʲôÊÇ»ùµãÀàÐÍ£¬»ùµãÊDZêÖ¾ÄãÉèÖÃµÄÆðµã×ø±êÔÚÕû¸öÒª»æÖƵĶÔÏ󣨲»ÂÛÊÇͼÏñ»¹ÊÇÎÄ×Ö£©ÖеÄλÖã¬Èç×óÉÏ£¬ÓÒÏ£¬ÕýÖмäµÈµÈ¡£
³£ÓõÄÖµÓÐ0»ò20£º×óÉÏ£¬17£ºÕýÖм䣬24£ºÓÒÉÏ£¬36£º×óÏ£¬40£ºÓÒÏ¡£

³ý´ËÖ®Í⣬»¹Óм¸¸öÖØÒª·½·¨
addCommand,removeCommand£¬ÕâÁ½¸ö·½·¨ÊǶÔCommandµÄÌí¼ÓºÍÈ¡ÏûµÄ²Ù×÷£¬ºÜ³£Óá£
¶øÌ¸µ½Command£¬×ÔÈ»¾Í񻃾¼°µ½commandListenerÕâ¸ö½Ó¿Ú£¬°´Å¥µÄ¼àÌýÐèҪͨ¹ýÕâ¸ö½Ó¿ÚÀ´½øÐУ¬Ò²¾ÍÊÇÒªÖØÔØ½Ó¿ÚÖеÄcommandAction()·½·¨¡£²»¹ýÔÚʹÓÃÕâ¸ö½Ó¿ÚµÄʱºò£¬²»ÒªÍüÁ˶Ե±Ç°µÄ¶ÔÏóÉèÖÃsetCommandListener(this)¡£
ÁíÍ⣬¶ÔÓÚStringÀ࣬substring·½·¨Ó¦¸ÃÕÆÎÕ
¶ø¶ÔÓÚFormÕâЩ¸ß¼¶¿Ø¼þ£¬¿ÉÓ÷½·¨²»¶à£¬¿´¿´API¼´¿É¡£
Î壮J2MEÖеÄÏß³Ì
J2MEÖеÄÏß³ÌÊÇThreadÀ࣬¶øÊµÏÖÏß³ÌÓÐÁ½ÖÖ·½·¨£¬Ò»ÖÖÊǼ̳ÐRunnable½Ó¿Ú£¬Ò»ÖÖÊÇTimerºÍTimerTask¡£¶ø²»¹ÜÊÇÄÄÖÖỊ̈߳¬Æä±¾Öʶ¼ÊÇÔÚÔËÐÐÆäÖеÄrun·½·¨¡£ÔÚÕâÀïҪעÒ⣬Runnable½Ó¿ÚµÄrun·½·¨ºÍTimerTaskµÄrun·½·¨ÓÖÊDz»Í¬µÄ£¬ÒòΪËûÃǵÄÔËÐлúÖÆ²»Í¬¡£Runnable½Ó¿ÚÊÇ¿¿Ï̵߳ÄÐÝÃß»òµÈ´ýÀ´ÊµÏÖÏ̵߳ÄˢУ¬¶øTimerTaskÊǰ´ÕÕÊÂÏȸø¶¨µÄʱ¼ä¼ä¸ôÀ´×Ô¶¯Ë¢Ð¡£¶ÔRunnable½Ó¿Ú£¬Ò»µ©run·½·¨½áÊøºó£¬ÔòÏ߳̾ͽáÊøÁË£¬Òò´ËRunnableÏß³ÌÀïµÄrun·½·¨ÒªÐ´³ÉÑ­»··½Ê½£¬Ò»°ãÊÇwhile(isRunning)µÄÐÎʽ£¬Òª½áÊøµÄʱºò°ÑisRunningÉèΪfalse£¬¶øTimerTaskÔò²»Óã¬ÒòΪËûÊǶ¨Ê±Ë¢Ð¡£µ«ÕâÑùÒ²ÓиöÎÊÌ⣬¾ÍÊÇÈç¹ûTimerTaskµÄrun·½·¨Ð´µÃ¹ý³¤£¬Ö´ÐÐʱ¼ä³¬¹ýÁËÉèÖõÄÏ̼߳ä¸ôʱ¼ä£¬¾Í»á³öÏÖÏß³ÌÖØµþµÄÇé¿ö¡£Ïß³ÌÖØµþ»áÔì³ÉÖîÈçÓÎÏ·ËÙ¶ÈͻȻ¼Ó¿ìµÈBug¡£
ÔÚRunnable½Ó¿Ú¶¨ÒåµÄÏß³ÌÀÓÐÁ½Öֵȴý·½·¨£¬Ò»ÖÖÊÇwait£¬Ò»ÖÖÊÇsleep£¬Èç¹ûʹÓÃwait·½·¨£¬ÔòҪעÒâÔÚÏß³Ìrun·½·¨ÀÓÃsynchonized±êÖ¾·û½«¸ÃÏß³ÌÉèÖÃΪͬ²½Ëø¶¨×´Ì¬£¬·ñÔò»á³öÏÖjava.lang.IllegalMonitorStateExceptionÒì³££¬´óÖÂÒâ˼ÊÇÏ̵߳±Ç°ÇëÇóµÄ¼àÊÓÆ÷¶ÔÏó²»ÄÜÏìÓ¦£¬ÒòΪ±»±ðµÄÏß³ÌÕ¼ÓÃÁË¡£

Ïß³ÌÔÚJ2MEÀï·Ç³£ÖØÒª£¬Ò»Çж¯Ì¬Ð§¹û£¨µ±È»ÕâÊÇÓÎÏ·µÄǰÌᣩ¶¼ÊÇͨ¹ýÏß³ÌÀ´²Ù×÷£¬Òò´Ë£¬¶ÔÏ̵߳ĿØÖÆÊÇÖµµÃÑо¿µÄÒ»¸öÎÊÌâ¡£ÈçºÎÓÅ»¯´úÂ룬ʹÏß³ÌÄܹ»ÔÚ×ã¹»¶ÌµÄ¼ä¸ôʱ¼äÄÚÕý³£Ë¢Ð£¬»»ÑÔÖ®£¬Õâ¾ÍÊÇ´ó¼ÒÌÖÂÛµÄFPSÎÊÌâ¡£³ÌÐòÓÅ»¯×öµÃºÃ£¬ÔòÏ̼߳ä¸ôʱ¼ä¿ÉÒÔ×ã¹»¶Ì£¬Ê¹µÃFPS¿ÉÒÔ×ã¹»¸ß£¬ÓÎÏ·µÄÁ÷³©¶Èµ±È»¾ÍÔ½¸ß¡£
Áù£®J2ME¿ª·¢ÖеĺÃϰ¹ß
1.       ¶àдעÊÍ£¬Í걸µÄ×¢ÊͲ»¹ÜÊǶÔÄã×Ô¼º£¬»¹ÊǶԱðÈË£¬¶¼ÊǺÜÓкô¦µÄ£¬ÔÚµ÷ÊÔÖÐÒ²»áÆðºÜ´óµÄ°ïÖú¡£
2.       ÔÚÖØÒªÁ÷³ÌµÄ¸÷¸ö»·½ÚÉèÖÃһЩ¼àÌýµã£¬ÆäʵºÜ¼òµ¥£¬¾ÍÊÇÓÃsymstem.out.println()À´Êä³öһЩ±êÖ¾·ûºÅ¾Í¿ÉÒÔÁË£¬ÕâÑù¿ÉÒÔ¼àÌýÄãµÄ³ÌÐòÔÚÔËÐеÄʱºò£¬×ßµ½ÄÄÒ»²½¡£
3.       ²»ÒªÐ´Ì«¶àµÄÀ࣬¾¡Á¿ÕûºÏ×ÊÔ´£¬²»ÓõıäÁ¿»òÕß·½·¨£¬¾¡Á¿È¥µô¡£
4.       ÊìÁ·ÕÆÎÕ¸÷ÖÖ³£¼ûµÄÒì³££¬²»ÒªÌ«ÒÀÀµÓÚÎʱðÈ˺ͷ­Ê飬ÕâЩӦ¸ÃÊÇÒ»¸öºÏ¸ñµÄ³ÌÐòÔ±Ó¦¸ÃÊìÁ·ÓÚÐĵĶ«Î÷¡£
5.       ¶Ô²»ÊìϤµÄÀ࣬Ӧ¸Ã¶àдС´úÂëÀ´ÊµÑéÆäÓ÷¨£¬±ðÈ˽²µÄÓÀÔ¶²»Èç×Ô¼ºÑо¿³öÀ´µÄ½á¹ûÀο¿¡£

- ×÷Õߣº gophinight 2005Äê03ÔÂ21ÈÕ, ÐÇÆÚÒ» 17:01¡¡ »Ø¸´£¨16£© |¡¡ ÒýÓã¨0£© ¼ÓÈ벩²É

ÈçºÎÓÃWTK£«UltraEditorµÄ¿ª·¢»·¾³À´½øÐбà³Ì£¨ÐÂÊÖÇë¿´£© ¡¡£¨×÷ÕßÖö¥£©
¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£

Ŀǰ×öJ2ME¿ª·¢µÄ»·¾³ºÜ¶à£¬³£ÓõÄÒ»°ãÊÇJB£¬Eclipse£¬UltraEditor+WTK£¬Õâ¸öËæ¸öÈËϲºÃ£¬ÎÒ¸öÈËÓõÄÊÇ×îºóÒ»ÖÖ»·¾³£¬ËùÒÔдƪСÎÄÀ´½éÉÜÒ»ÏÂÈçºÎÓÃÕâ¸ö¿ª·¢»·¾³À´½øÐгÌÐò¿ª·¢¡£

¼òµ¥µØËµ£¬WTKÊÇÒ»¸ö±àÒëºÍµ÷ÊԵŤ¾ß£¬¿ÉÒÔ¼ÓÔØºÜ¶àÄ£ÄâÆ÷×÷ΪģÄâÔËÐеĻ·¾³£¬¶øUltraEditorÊÇÒ»¸ö±È½ÏÓÅÐãµÄ±à¼­Æ÷£¬ÔÚ³ÌÐòµÄ¸ñʽÅÅ°æ·½Ãæ×÷µÃ±È½ÏºÃ¡£ÏÂÃæÎÒÃǾÍÓÃÕâ¸ö»·¾³À´×ö´ó¼Ò¶úÊìÄÜÏêµÄHelloWolrdµÄÀý×Ó¡£

Ê×ÏÈ£¬´ò¿ªWTK£¬È»ºóÑ¡Ôñн¨¹¤³Ì£¬Í¬JB£¬EclipseÒ»Ñù£¬WTKÒ²ÊÇÒÔ¹¤³Ì×÷Ϊ¹ÜÀíµÄ»ù±¾µ¥Î»£¬Ò»¸öÍêÕûµÄ³ÌÐò¾ÍÊÇÒ»¸ö¹¤³Ì¡£ÔÚн¨¹¤³ÌÀïÓÐÁ½¸ö¶«¶«ÐèÒªÌîд£¬µÚÒ»Êǹ¤³ÌÃû£¬Õâ¸ö¿ÉÒÔÂÒÌÏëдʲô¶¼ÐУ¬ºÇºÇ£¬µÚ¶þÊÇÄãµÄ¹¤³ÌµÄÖ÷ÀàÃû£¬Õâ¸öҪעÒ⣬Ä㽫Ҫн¨µÄÖ÷ÀàÎļþ±ØÐëÓëÕâ¸öÖ÷ÀàÃûÏàͬ£¬ÌîÍêÕâÁ½¸ö¶«¶«£¬È·¶¨¾ÍOKÁË¡£

½ÓÏÂÀ´£¬ÈÃÎÒÃÇ´ò¿ªWTKĿ¼ÏµÄAppsÎļþ¼Ð£¬Äã¾Í»á·¢ÏÖÀïÃæ¶àÁËÒ»¸öÄã¸Õ²Å½¨µÄ¹¤³ÌĿ¼£¬´ò¿ªÕâ¸öĿ¼£¬ÏÂÃæÓÐÕâÑù¼¸¸öÎļþ¼Ð£¬bin,classes,src,res,ÔÚbinĿ¼ÀﻹÓÐÁ½¸öÎļþ£¬Ò»¸öJad£¬Ò»¸öMF£¬²»¹ýÄã´ó¿É²»È¥¹ÜËû£¬ºÇºÇ£¬¶øÆäËûÎļþ¼Ð¶¼Êǿյġ£ºÃÀ²£¬ÏÖÔÚ¸ÃÊÇд´úÂëµÄʱºòÁË¡£ÔÚд´úÂë֮ǰ£¬Òª½»´úÒ»ÏÂÕ⼸¸öĿ¼µÄ×÷Óã¬BinÊÇ´æ·ÅÄ㽫À´´ò°üµÄ³ÌÐò°üµÄµØ·½£¬Classes×ÔÈ»²»ÓÃ˵£¬ÊǷűàÒëºÃµÄÀàÎļþµÄµØ·½£¬SRCÊÇ´æ·ÅÔ´ÎļþµÄµØ·½£¬¶øRES£¬ÔòÊÇ´æ·Å×ÊÔ´Îļþ±ÈÈçͼƬѽÎı¾Ñ½Ê²Ã´µÄµØ·½¡£

´ò¿ªUltraEditor£¬Ð½¨Ò»¸öÎļþ£¬È»ºóÖ±½ÓÏȱ£´æ£¬Â·¾¶Â×ÔÈ»ÊǸղŵÄSRCÎļþ¼Ð£¬ÎļþÃûÄØ£¬Ç°ÃæÒѾ­Ëµ¹ýÁË£¬ÊÇÄ㽨µÄÖ÷ÀàÃû£¬ÔÚÕâÀÓбØÒª½âÊÍÒ»ÏÂʲôÊÇÖ÷Àà¡£ÔÚJ2MEµÄ³ÌÐòÀÓÐÇÒÖ»ÓÐÒ»¸öÖ÷À࣬Õâ¸öÖ÷ÀàÊÇÒ»¸ö¼Ì³ÐÓÚMIDletµÄÀ࣬ËûÊÇÕû¸ö³ÌÐòµÄÔËÐÐÈë¿Ú£¬³ÌÐòµÄÖ÷Ï߳̾ÍÊÇÓÉÕâ¸öÖ÷À࿪ʼµÄ¡£Ò»°ãÀ´Ëµ£¬Ò»¸öÓÎÏ·ÊÇÓÉÒ»¸öÖ÷À࣬Èô¸É»òÒ»¸öCanvasÀࣨ»­²¼£©£¬Èô¸É¸ö×Ô½¨µÄÀ࣬һ¸öRMSÀàÒÔ¼°Ò»¶Ñ¼ÆÊ±Æ÷ÀࣨÈç¹ûÓбØÒªµÄ»°£©¹¹³ÉµÄ£¬àÅ£¬Ïл°ÔÝÇÒ²»Ìᣬ½¨ºÃÕâ¸öÖ÷ÀàÎļþºó£¬¸ÉÊ²Ã´ÄØ£¬ºÇºÇ£¬×ÔÈ»ÊÇдÎÒÃǵĴúÂëÁË¡£HelloWorldµÄ´úÂëÏë±Ø´ó¼ÒËæ±ã´Óij¸ö½ÇÂä¶¼¿ÉÒÔ˳Êּ𵽣¬ÕâÀï¾ÍÌùÒ»¶Î¡£

import javax.microedition.midlet.*;

public class HelloWorld extends MIDlet

{

     public HelloWorld()

     {

     }

     public void startApp()

    {

            System.out.println("HelloWorld");

    }

    public void pauseApp()

   {

   }

   public void destroyApp(boolean unditional)

  {

   }

}

дÍêÖ®ºó±£´æ£¬È»ºóÇл»µ½WTK£¬Ñ¡ÔñBuild£¨²»Òª¸æËßÎÒÄãûÓп´µ½Ó´£©£¬È»ºóWTK»á¿ªÊ¼±àÒë³ÌÐò£¬Èç¹ûÄãÓÐʲôÓï·¨ÉϵĴíÎó£¬Ëû¾Í»áÔÚ¿ØÖÆÌ¨ÖÐÌáʾÄ㣬×ÔÈ»À²£¬Õâ¸ö³ÌÐòÊÇûÓдíµÄ£¬ÓÚÊÇ»á¸æËßÄãBuild¡¡Successfull£¡£¬½ÓÏÂÀ´£¬Ñ¡ÔñRunÀ´ÔËÐÐÄãµÄ³ÌÐò£¬ÓÚÊÇ£¬Ò»¸öÊÖ»úÄ£ÄâÆ÷Ãæ°å³öÏÖÀ²^_^£¬ÉÏÃæ»áÏÔʾÄãµÄ³ÌÐòÃû£¬»¹ÓÐÒ»¸ölaunch°´Å¥£¬àÅ£¬µã»÷½øÈ¥£¬ºÃ£¬Äã¾Í»á·¢ÏÖ¿ØÖÆÌ¨ÉÏ´ò³öÁËÎÒÃǵÄHelloWorldÀ²¡£

½ÓÏÂÀ´Äã¿ÉÒÔÓÃWTKÀ´Îª³ÌÐò´ò°ü£¬Ñ¡Ôñproject->package->create package£¬ºÃÀ²£¬WTK¾Í¿ªÊ¼¸øÎÒÃǵijÌÐò´ò°üÁË£¬ÕâÖÖ·½Ê½´òµÄ°üÊÇûÓлìÏý¹ýµÄ°ü£¬ÖÁÓÚ»ìÏýÓë·Ç»ìÏýµÄÇø±ð£¬ÎÒÃÇÔÚÕâÀï¾Í²»Ï¸ËµÀ²¡£´òÍê°üºó£¬¸Ï½ôÈ¥ÄãµÄĿ¼Àï¿´¿´°É£¬ÔÚBinĿ¼Ï¾ͳöÏÖÒ»¸öJarÎļþÀ²¡£Õâ¸öÎļþ¾Í¿ÉÒÔ×°µ½ÊÖ»úÀïÈ¥ÍæÀ²^*^(&(&)(&)*()£¨µ±È»Ç°ÌáÊÇÄã×öÁËÒ»¸öÓÎÏ·£¬HelloWorldô£¬ÃâÁ˰ɣ¬¹þ¹þ£©

ÔõôÑù£¬¼òµ¥°É¡£WTKÀﻹÓв»ÉÙ¿ÉÉèÖõĶ«Î÷£¬ÎÒÃÇ×î³£Óõ½µÄÊÇÕâÑùÈý¸ö¶«¶«£¬ÔÚWTKÖÐÑ¡ÔñSetting£¬È»ºóתµ½×îºóÒ»¸öÑ¡Ï£¬Äã»á·¢ÏÖÓÐÈý¸öÄÚÈÝ¿ÉÒԱ༭£¬ÕâÈý¸öÄÚÈÝÒÀ´ÎÊdzÌÐòÃû£¬IconºÍClass£¬³ÌÐòÃû¿ÉÒÔ²»¹Ü£¬IconÂ×ÔÈ»ÊÇͼ±êÀ²£¬ÎÒÃÇ×öºÃµÄÓÎÏ·£¬×°µ½ÊÖ»úÉϺó¶¼Ï£ÍûÓÐÒ»¸öºÃ¿´µÄͼ±êÀ´±êʶÂÔõô°ìÄØ£¬ÕÒÒ»ÕÅͼƬ£¬£´£°ÉϵľÍÓã±£¶¡Á£±£¶µÄ¾ÍÐÐÀ²£¬È»ºóÈ¡ÃûΪIcon£¨Í¼Æ¬±ØÐëÊÇPng¸ñʽµÄ£©.png£¬µ±È»Ãû×Ö¿ÉÒÔËæÒâÈ¡À²£¬È»ºó°ÑÕâ¸öͼƬ·Åµ½RESĿ¼Ï£¬ÕâÑùÄãµÄ³ÌÐò×°µ½ÊÖ»úÉϺó¾ÍÓÐͼ±êÀ²¡£ÖÁÓÚµÚÈý¸öÄÚÈÝ£¬Class£¬Õâ¸öºÜÖØÒª£¬Ëû±êʶµÄÊÇÄãµÄÖ÷ÀàµÄ·¾¶£¬ÓкܶàÅóÓѰÑ×Ô¼ºµÄ³ÌÐò´ÓJBÏÂ×ªÒÆµ½WTKϱàÒë»á³ö´í£¬»áÌáʾClassNotFoundExceptionÒì³££¬¾ÍÊÇÕâ¸ö·¾¶ÈǵĻöÀ²¡£JBÏÂÒ»°ã¶¼ÊÇ×Ô¶¯¸øÄãµÄ³ÌÐò¼ÓÉÏPackageµÄ£¬±ÈÈçͬÑùÊÇHelloWorldÕâ¸ö³ÌÐò£¬¿ÉÄÜÔÚJBϾÍÊÇ×÷Ϊһ¸ö°ü£¨±ÈÈç½ÐHello£©ÏµĴúÂë´æÔÚ£¬ÄÇô£¬ÄãÔÚClassÕâÀï¾ÍÓ¦¸ÃÌîÉÏ/Hello/HelloWorld£¬ÕâÑùÐ޸Ĺýºó£¬ÔÙ±àÒ룬¾Í²»»áÔÙ³ö´íÀ²¡£^_^

ºÃÀ²£¬¾ÍдÕâô¶à£¬Ï£Íû¸ø´ó¼ÒһЩÌáʾºÍ°ïÖú¡£

- ×÷Õߣº gophinight 2004Äê12ÔÂ21ÈÕ, ÐÇÆÚ¶þ 03:18¡¡ »Ø¸´£¨1£© |¡¡ ÒýÓã¨0£© ¼ÓÈ벩²É

µÍ¼¶½çÃæÖÐʵÏÖÊäÈë·¨

ºÇºÇ£¬ÔÚÓÎÏ·»òÕßÓ¦Óÿª·¢ÖУ¬Ôڸ߼¶½çÃæºÍµÍ¼¶½çÃæÖ®¼äµÄÇл»×ÜÊÇÒ»¼þÈÃÈËÍ·ÌÛµÄÊÂÇ飬¸ß¼¶½çÃæ·½±ã£¬µ«ÊÇÄÑ¿´£¬µÍ¼¶½çÃæÃÀ¹Û£¬µ«ÊÇÒ»Ö±ÒÔÀ´ÒòΪÔÚÊäÈë·¨ÉÏ´æÔÚÀ§ÄÑ£¨Ö÷ÒªÊÇÖ¸ÖÐÎÄ£©£¬ËùÒԺܶà²úÆ·¶¼ÊÇʹÓÃÁËÁ½ÖÖ½çÃæ²¢´æµÄ·½Ê½£¬µ«ÎÒÒ»Ö±Ïë·ÅÆú¸ß¼¶½çÃæ£¬²ÉÓõͼ¶½çÃæÀ´±£³Ö²úÆ·½çÃæ·ç¸ñµÄͳһ£¬¾­¹ýNÌìµÄŬÁ¦£¬ÖÕÓÚÕû³ÉÁËÒ»ÌױȽϺÃÓõÄÊäÈë·¨£¬´Ó´Ë¿ÉÒÔ¸æ±ð¸ß¼¶½çÃæÁË£¬^_^

ÏȽ²½²Õâ¸öÊäÈë·¨µÄÔ­Àí£¬Ê×ÏȳÌÐò»á´Ó×Ö¿âÎļþÖн«Æ´ÒôºÍÏàÓ¦µÄÎÄ×Ö¶Á½øÄڴ棬ÆäÖÐÆ´Òô»á·ÅÔÚÒ»¸öÊý×éÀÓÃÀ´²éÕÒ£¬È»ºó×Ö¿âÀïµÄ×Ö»áÒÔÆ´ÒôΪKey´æÈëÒ»¸ö¹þÏ£±í£¬²éÕÒµÄʱºò£¬Ê×Ïȸù¾Ý°´¼üÉϵÄ×Öĸ×éºÏÔÚÆ´Òô±íÀï²éÕÒÊÇ·ñÓÐÊÊÅäµÄÆ´Òô£¬Èç¹ûÓÐÍêÕûÊÊÅäµÄÆ´ÒôÔòÖ±½Ó´Ó¹þÏ£±í´ÓÈ¡³öÏàÓ¦µÄÎÄ×ÖÒÔ¹©Ñ¡Ôñ£¬ÏÂÃæ¾Í¸ø³öÏàÓ¦µÄ´úÂë

public class InputMethod implements Const
{
 Hashtable hashtable=new Hashtable();
 String[] wordKey;
 int[] inputKey=new int[10];
 int currentPos;
 String[] currentInputPad;//µ±Ç°µÄÊäÈëÏÔʾ°å
 public Vector keyAvailable=new Vector(0,1);
 Vector wordsBuffer;//ÉÏÒ»¼¶µÄ¶ÁÒôµÄ»º´æ
 int select,charSelect;
 int screenW,screenH;
 int num_row;//ÿÐеÄ×Ö”µ
 int charPage;//í“”µ
 public String inputChar;//Ý”ÈëµÄ×Ö·û
 int inputMode;//ÊäÈëÀàÐÍ¡¡£°×Öĸ¡¡£±Êý×Ö¡¡£²Æ´Òô
 String[] inputModeTxt={"abc","123","Æ´Òô"};
 public String content[]={"","",""};//ÊäÈëµÄÄÚÈÝ£¬µÚһάÊÇʵ¼ÊÄÚÈÝ£¬µÚ¶þάºÍµÚÈýάÊÇÓÃÓÚÓйâ±ê¶¨Î»ÏÔʾµÄÄÚÈÝ
 public int charPos;//¹â±êλÖÃ
 long time1,time2;//°´¼üµÄʱ¼ä
 int charKeyPos;//×ÖĸµÄÇл»
 String[][] charKey=new String[][]{
   {"a","b","c"},
   {"d","e","f"},
   {"g","h","i"},
   {"j","k","l"},
   {"m","n","o"},
   {"p","q","r","s"},
   {"t","u","v"},
   {"w","x","y","z"}
 };
 public InputMethod(int w,int h)
 {
  screenW=w;
  screenH=h;
  num_row=(w-10)/20;
  charPage=0;
  cls();
  readWords();
 }
 /*Çå¿Õ»º´æ*/
 public void cls()
 {
  currentPos=0;
  wordsBuffer=new Vector(0,1);
  for(int i=0;i<inputKey.length;i++)
   inputKey[i]=-1;
 }
 /*Çå¿ÕÊäÈëÄÚÈÝ*/
 public void clsContent()
 {
  content=new String[]{"","",""};
  charPos=0;
  charSelect=0;
 }
 public void doUp()
 {
  if(select>0)
   select--;
  currentInputPad=null;
 }
 public void doDown()
 {
  if(select<keyAvailable.size()-1)
   select++;
  currentInputPad=null;
 }
 public void drawInput(Graphics g)
 {
  try
  {
   int starty;
   if(inputMode==2)
   {
    if(keyAvailable!=null&&keyAvailable.size()>0)
    {
     starty=240-keyAvailable.size()*20;
     if(keyAvailable.size()>0)
      PaintCanvas.drawBox(g, 0, starty, 50,keyAvailable.size()*20, 0xffff00);
     g.setColor(0);
     for(int i=0;i<keyAvailable.size();i++)
     {
      if(i==select)
       g.setColor(0x00ff00);
      else
       g.setColor(0x0000ff);
      g.fillRect(0,starty+i*18,50,18);
      g.setColor(-1);
      String key=(String)keyAvailable.elementAt(i);
      g.drawString(key,10,starty+i*18,0);
      if(i==select)
      {
       /*²éÕÒÏàÓ¦µÄÆ´Òô*/
       for(int m=0;m<wordKey.length;m++)
       {
        /*Èç¹ûÍêÈ«ÊÊÅ䣬¾Í´Ó¹þÏ£±íÀïÈ¡³öÏàÓ¦µÄ×Ö*/
        if(key.equals(wordKey[m]))
        {
         currentInputPad=(String[])hashtable.get(key);
         break;
        }
       }
      }
     }
    }

    if(currentInputPad!=null)
    {
     starty=screenH-65;
     drawTextBox(g,0xefefef,0x121212,0x2d3f4d,2,starty,screenW-4,25,2,0);
     g.setColor(0xffff00);
     for(int i=charPage*num_row;i<(charPage+1)*num_row;i++)
     {
      System.out.println(i+"."+charPage+"."+num_row+"."+charSelect);
      if(i>currentInputPad.length-1)
       return;
      if(i==charSelect)
      {
       g.setColor(-1);
       g.drawRect(3+(i-charPage*num_row)*20,starty+1,16,20);
      }
      g.setColor(0xffff00);
      g.drawString(currentInputPad[i],5+(i-charPage*num_row)*20,starty+2,0);
     }
    }
   }
   PaintCanvas.drawStringShadow(g,-1,0,0,inputModeTxt[inputMode],w,0,24);
  }
  catch(Exception e)
  {
   System.out.println("Ý”Èë·¨³öåe"+e.toString());
  }
 }
 public void drawTextBox(Graphics g,int color1,int color2,int color3,int stx,int sty,int bw,int bh,int boardW,int type)
 {
  if(type==0)
  {
   g.setColor(color1);
   g.fillRect(stx-boardW,sty-boardW,bw+2*boardW,bh+2*boardW);  
   g.setColor(color2);
   g.fillRect(stx,sty,bw+boardW,bh+boardW);
   g.setColor(color3);
   g.fillRect(stx,sty,bw,bh);  
  }
  else
  {
   g.setColor(color2);
   g.fillRect(stx-boardW,sty-boardW,bw+2*boardW,bh+2*boardW);  
   g.setColor(color1);
   g.fillRect(stx,sty,bw+boardW,bh+boardW);
   g.setColor(color3);
   g.fillRect(stx,sty,bw,bh);  
  }   
 }
 public void keyPressed(int i)
 {
  time2=System.currentTimeMillis();
  if(i==MIDKEY)
  {
   if(inputMode==2)
   {
    if((inputChar=getChar())!=null)
    {
     cls();
     keyAvailable.removeAllElements();
     currentInputPad=null;
    }
   }
  }
  if(i==SOFTRIGHTKEY)
  {
   backWord();
//   cls();
//   keyAvailable=new Vector(0,1);
//   currentInputPad=null;
  }
  if(i>=48&&i<58)
  {
   if(inputMode==2&&i>=50)
   {
    if(checkWord(i-50))
    {
     inputKey[currentPos++]=i-50;
     currentInputPad=null;
    }
    select=0;
   }
   else if(inputMode==1)
    inputChar=""+(i-48);
   else if(inputMode==0)
   {
    if(i>=50)
    {
//     System.out.println("°´¼üʱ¼ä"+time2+"."+time1);
     if((time2-time1)<500)
     {
//      System.out.println("Á¬Ðø°´¼ü");
      charKeyPos++;
      if(charKeyPos==charKey[i-50].length)
       charKeyPos=0;
//      System.out.println("ÄÚÈݳ¤¶È"+content[0].length()+"¹â±êλÖÃ"+charPos);
      if(charPos==content[0].length())
      {
       System.out.println("1");
       content[0]=content[0].substring(0,charPos-1);
       charPos--;
       System.out.println("2");
      }
      else
       content[0]=content[0].substring(0,charPos-1)+content[0].substring(charPos,content[0].length());
      refreshContent();
     }
     inputChar=charKey[i-50][charKeyPos];
    }
   }
  }
  if(i==UPKEY)
   doUp();
  if(i==DOWNKEY)
   doDown();
  if(i==LEFTKEY)
  {
   if(charSelect>0)
    charSelect--;
   if(charSelect%num_row==num_row-1)
    charPage--;
  }
  if(i==RIGHTKEY)
  {
   if(charSelect<currentInputPad.length-1)
    charSelect++;
   if(charSelect%num_row==0&&charSelect!=0)
    charPage++;
  }
  /*Çл»ÊäÈë·¨*/
  if(i==POUNDKEY)
  {
   inputMode++;
   if(inputMode==inputModeTxt.length)
    inputMode=0;
  }
  /*ɾ³ý*/
  if(i==CKEY)
  {
   if(charPos>=2&&PaintCanvas.checkFace(content[0].substring(charPos-2,charPos))>-1)
   {

    content[0]=content[0].substring(0, charPos-2)+content[0].substring(charPos,content[0].length());
    charPos-=2;
   }
   else if(charPos>0)
   {
    if(charPos==content[0].length())
     content[0]=content[0].substring(0,charPos-1);
    else
     content[0]=content[0].substring(0, charPos-1)+content[0].substring(charPos,content[0].length());
    charPos--;
   }
   refreshContent();
  }
  time1=time2;
 }
 /*»ØÍË*/
 public void backWord()
 {
  if(wordsBuffer.size()>0)
  {
   keyAvailable=(Vector)wordsBuffer.elementAt(wordsBuffer.size()-1);
   wordsBuffer.removeElementAt(wordsBuffer.size()-1);
   currentInputPad=null;
  }
 }
 public void checkWords(Vector temp,String key,int ik)
 {
  int p;
  for(p=0;p<charKey[ik].length;p++)
  {

   int m;
   for(m=0;m<wordKey.length;m++)
   {
    if(wordKey[m].indexOf(key+charKey[ik][p])==0)
    {
     temp.addElement(new String(key+charKey[ik][p]));
     break;
    }
   }
  }
 }
 /*¼ì²éÊÇ·ñÓкÏÊÊµÄÆ´Òô*/
 public boolean checkWord(int ik)
 {
  Vector temp=new Vector(0,1);
  String key="";
  if(keyAvailable.size()>0)
  {
   for(int i=0;i<keyAvailable.size();i++)
   {
    key=(String)keyAvailable.elementAt(i);
    checkWords(temp,key,ik);
   }
  }
  else
   checkWords(temp,key,ik); 
  if(temp.size()>0)
  {
   wordsBuffer.addElement(keyAvailable);
   keyAvailable=temp;
   return true;
  }
  return false;
 }
 /*´Ó×Ö¿âÀï¶ÁÈ¡Îļþ*/
 public void readWords()
 {
  try
  {
   InputStream is;
   String[] words;
   int fontNum=0;
   is=getClass().getResourceAsStream("/input/chars.txt");
   StringBuffer sb=new StringBuffer();
   int c;
   int pos=0;
   while((c=is.read())!=-1)
   {
//    System.out.println(c);
    if(c=='\n')
    {
     if(pos==0&&fontNum==0)
     {
      fontNum=Integer.parseInt(sb.toString());
      wordKey=new String[fontNum];
//      System.out.println("Æ´Òô±í³¤¶È:"+wordKey.length);
     }
     else
     {
      String key;
      byte[] data1=new byte[sb.toString().length()];
      for(int i=0;i<data1.length;i++)
       data1[i]=(byte)sb.charAt(i);
      String s=new String(data1,"UTF-8");
      key=s.substring(0, s.indexOf("*")).toLowerCase();
//      System.out.println(key);
      words=new String[s.length()-s.indexOf("*")-1];
      for(int j=0;j<words.length;j++)
      {
       words[j]=s.substring(s.indexOf("*")+1+j,s.indexOf("*")+2+j);
      }
      hashtable.put(key, words);
      wordKey[pos++]=key;  
     }
     sb=new StringBuffer();
    }
    else if(c!=0x0d)
    {
     sb.append((char)c);
    }
   }
   String key;
   byte[] data1=new byte[sb.toString().length()];
   for(int i=0;i<data1.length;i++)
    data1[i]=(byte)sb.charAt(i);
   String s=new String(data1,"UTF-8");
   key=s.substring(0, s.indexOf("*"));
   words=new String[s.length()-s.indexOf("*")-1];
   for(int j=0;j<words.length;j++)
   {
    words[j]=s.substring(s.indexOf("*")+1+j,s.indexOf("*")+2+j);
   }
   hashtable.put(key, words);
   wordKey[pos++]=key;
  }
  catch(Exception e)
  {
   System.out.println("¶ÁÈ¡×Ö¿â³ö´í"+e.toString());
  }
 }
 public String getChar()
 {
  if(currentInputPad!=null)
   return currentInputPad[charSelect];
  else
   return null;
 }
 public void setInputMode(int type)
 {
  inputMode=type;
 }
 public int getInputMode()
 {
  return inputMode;
 }
 public void refreshContent()
 {
  if(content[0].length()>0)
  {
   if(charPos==0)
   {
    content[1]=" "+content[0];
    content[2]="|"+content[0];
   }
   else if(charPos==content[0].length())
   {
    content[1]=content[0]+" ";
    content[2]=content[0]+"|";
   }
   else
   {
    content[1]=content[0].substring(0,charPos)+" "+content[0].substring(charPos,content[0].length());
    content[2]=content[0].substring(0,charPos)+"|"+content[0].substring(charPos,content[0].length());
   }
  }
  System.out.println(content[0]);
  System.out.println(content[1]);
  System.out.println(content[2]);
 }
 /*ÒÆ¶¯¹â±ê*/
 public void moveCharPos(int direct)
 {
  if(direct==0)
  {
   if(charPos>2)
   {
    System.out.println(content[0].substring(charPos-2,charPos));
    if(PaintCanvas.checkFace(content[0].substring(charPos-2,charPos))>-1)
     charPos-=2;
    else
     charPos--;
   }
   else if(charPos>0)
    charPos--;
  }
  else
  {
   if(charPos<content[0].length()-2)
   {
    if(PaintCanvas.checkFace(content[0].substring(charPos+1,charPos+3))>-1)
     charPos+=2;
    else
     charPos++;
   }
   else if(charPos<content[0].length())
    charPos++;
  }
  refreshContent();
 }
}

Õâ¸ö´úÂëʵÏÖÁËÓ㣺żüÇл»Ó¢ÎÄ£¬Êý×Ö£¬Æ´ÒôÖ®¼äµÄÊäÈë·¨Çл»£¨²»ºÃÒâ˼£¬ÔÝʱûÓмÓÈë±êµãÊäÈ룩£¬È»ºóÔÚ×Ô¼ºµÄCanvas½çÃæÖÐͨ¹ýÈçϰ´¼ü¿ØÖÆ

 /*ÊäÈë·¨µÄ°´¼ü*/
 public void keyPressedInput(int i)
 {
  if(!chooseFace&&down&&imt.keyAvailable.size()==0)
  {
   chooseFace=true;
   faceNo=7;
  }
  else if(!chooseFace&&left&&imt.keyAvailable.size()==0)
  {
   imt.moveCharPos(0);
  }
  else if(!chooseFace&&right&&imt.keyAvailable.size()==0)
  {
   imt.moveCharPos(1);
  }
  else if(chooseFace)
  {
   if(left)
   {
    if(faceNo==0)
     faceNo=face.rows*face.columns-1;
    else
     faceNo--;
   }
   else if(right)
   {
    if(faceNo==face.rows*face.columns-1)
     faceNo=0;
    else
     faceNo++;
   }
   else if(up)
    chooseFace=false;
   else if(fire||softLeft)
   {
    imt.content[0]+=faceSign[faceNo];
    imt.charPos+=2;
    imt.refreshContent();
   }
  }
  else if(softRight)
  {
   if(imt.keyAvailable==null||imt.keyAvailable.size()==0)
   {
    drawMessage=-1;
    imt.clsContent();
   }
   else
    imt.keyPressed(-7);
  }
  else if(softLeft)
  {
   if(imt.keyAvailable.size()==0)
   {

    if(imt.content[0]!=null&&imt.content[0].length()>0)
    {
     sendMessage(drawMessage);
    }
    else
     setNotice("¶Ô²»Æð£¬ÄãÊäÈëµÄÐÅϢΪ¿Õ");
    drawMessage=-1;
   }
  }
  else
  {
   imt.keyPressed(i);
   if(imt.inputChar!=null)
   {
    if(imt.content[0]==null||imt.content[0].length()==0)
    imt.content[0]=imt.inputChar;
    else
     imt.content[0]=imt.content[0].substring(0,imt.charPos)+imt.inputChar+imt.content[0].substring(imt.charPos, imt.content[0].length());
    imt.inputChar=null;
    imt.charPos++;
   }
  }
  imt.refreshContent();
 }

ÕâÀïÃæÓÐһЩÎÒ×Ô¼ºµÄ¹¤³ÌÖÐÒªÓõ½µÄÀ࣬´ó¼Ò¿´µÄʱºò×¢ÒâÇø·Öһϣ¬ºÇºÇ£¬±ÈÈçchooseFaceÊÇΪÁËÎÒÃÇÕâ±ßÐèÒª²åÈë±íÇéÍ·ÏñÓõ쬴ó¼Ò¿ÉÒÔ²»Ó㬻æÖƵÄʱºò£¬½»ÌæÏÔʾinputmethodÀïµÄcontent[1]ºÍcontent[2]£¬È·¶¨ÐèÒªÓõ½ÊäÈëÄÚÈݵÄʱºò£¬µ÷ÓÃinputmethodÀïµÄcontent[0]¾ÍÐÐÁË¡£

ÁíÍâ¸øÒ»ÏÂ×Ö¿âÎļþµÄ¸ñʽ

392
A*°¡°¢ëç
Ai*°®°«°¤°¥°­°©°¬°¦°§°ª°¯°£°¨´ôæÈêÓÞß

×Ö¿âÎļþÊÇÒ»¸öTXTÎļþ£¬µÚÒ»ÐеÄÊý×Ö±êÃ÷Õâ¸ö×Ö¿âÀïÓжàÉÙÆ´Òô£¬È»ºóÿһÐÐÊÇÆ´ÒôºÍ×ֿ⣬Õâ¸öÎļþ¿ÉÒÔ×Ô¼ºËæÒⶨÒå¡£

OK£¬¾Í˵Õâô¶à°É£¬´ó¼ÒÓп´²»Ã÷°×µÄµØ·½£¬¿ÉÒÔÕÒÎÒ½»Á÷һϣ¬Ð»Ð»¡£

- ×÷Õߣº µ¶½£Ð¥ 2007Äê05ÔÂ16ÈÕ, ÐÇÆÚÈý 14:25¡¡ »Ø¸´£¨4£© |¡¡ ÒýÓã¨0£© ¼ÓÈ벩²É

³£ÓõÄÅÅÐòËã·¨£¨°üÀ¨Ã°ÅÝÅÅÐò£¬Ñ¡ÔñÅÅÐò£¬²åÈëÅÅÐò£¬Ï£¶ûÅÅÐò£¬¿ìËÙÅÅÐò)

ÅÅÐòËã·¨ÔÚ³ÌÐòÖлáÓõ½ºÜ¶à£¬ÕâÀï½éÉܼ¸ÖÖ³£¼ûµÄÅÅÐò·½·¨ÒÔ¼°±È½Ï

ðÅÝÅÅÐò£º¶ÔÒ»¸ö¶ÓÁÐÀïµÄÊý¾Ý£¬°¤¸ö½øÐÐÂÖѯºÍ½»»»£¬Ã¿´ÎÂÖѯ³öÒ»¸öµ±Ç°×î´ó»òÕß×îСµÄÖµ·ÅÔÚ¶Óβ£¬È»ºó¼ÌÐøÏ´ÎÂÖѯ£¬ÂÖѯ³¤¶È-1£¬¾Í¸úðÅÝÒ»Ñù£¬ËùÒÔ³ÆÎªÃ°ÅÝÅÅÐò£¬ÔËËãʱ¼ä¸´ÔÓ¶ÈNƽ·½

Ñ¡ÔñÅÅÐò£º¶ÔÒ»¸ö¶ÓÁÐÀïµÄÊý¾Ý£¬Ñ¡³öµ±Ç°×î´ó»òÕß×îСµÄÖµ£¬È»ºó½«ËûÓë¶ÓÊ×µÄÊý¾Ý½»»»£¬È»ºó´ÓµÚ¶þ¸ö¿ªÊ¼£¬½øÐÐÏàͬµÄ²Ù×÷£¬ÔËËãʱ¼ä¸´ÔÓ¶ÈNƽ·½£¬µ«ÓÉÓÚËû²»ÏñðÅÝÒ»ÑùÐèÒª²»Í£µÄ½»»»Î»Öã¬ËùÒÔ»á±ÈðÅÝ¿ìһЩ

²åÈëÅÅÐò£º¶ÔÒ»¸ö¶ÓÁÐÀïµÄÊý¾Ý£¬´ÓµÚ¶þ¸ö¿ªÊ¼£¬Óë´ËλÖÃ֮ǰµÄÊý¾Ý½øÐбȽϣ¬Ðγɾֲ¿ÓÐÐòµÄ¶ÓÁУ¬Ñ­»·´Ë²Ù×÷£¬Ö±µ½¶Ó⣬ÔËËãʱ¼ä¸´ÔÓ¶ÈÒÀȻΪNƽ·½£¬µ«ËûÓÉÓÚ±£Ö¤Á˾ֲ¿µÄÓÐÐòÐÔ£¬ËùÒԱȽϵĴÎÊý»á¸üÉÙһЩ£¬Ïà¶ÔǰÁ½ÖÖ»á¸ü¿ì

Ï£¶ûÅÅÐò£ºÆäʵ¾ÍÊÇÓò½³¤¿ØÖƵIJåÈëÅÅÐò£¬Ï£¶ûÅÅÐòͨ¹ý¼Ó´ó²åÈëÅÅÐòÖÐÔªËØÖ®¼äµÄ¼ä¸ô£¬²¢ÔÚÕâЩÓмä¸ôµÄÔªËØÖнøÐвåÈëÅÅÐò£¬´Ó¶øÈÃÊý¾ÝÏî¿ÉÒÔ´ó·ù¶ÈÒÆ¶¯£¬ÕâÑùµÄ·½Ê½¿ÉÒÔʹÿ´ÎÒÆ¶¯Ö®ºóµÄÊý¾ÝÀëËûÃÇÔÚ×îÖÕÐòÁÐÖеÄλÖÃÏà²î²»´ó£¬±£Ö¤Êý¾ÝµÄ»ù±¾ÓÐÐò£¬´ó´óÌáÉýÁËÅÅÐòËÙ¶È£¬ÔËËãʱ¼ä¸´ÔÓ¶ÈN*logN

¿ìËÙÅÅÐò£º¶ÔÒ»¸ö¶ÓÁУ¬ÒÔËû¶ÓβµÄÊý¾ÝΪ»ù×¼Öµ£¬ÏÈ»®·Ö³ÉÁ½¿éÊý¾Ý£¬Ò»¿é¶¼´óÓÚÕâ¸öÖµ£¬Ò»¿éСÓÚÕâ¸öÖµ£¬È»ºó¶ÔÕâÁ½¿é½øÐÐͬÑùµÄ²Ù×÷£¬ÕâÊÇ×î¿ìµÄÅÅÐò·½·¨£¬ÔËËãʱ¼ä¸´ÔÓ¶ÈN*logN

ÏÂÃæÊÇ´úÂ룺

 public static void sort(int[] a)
 {
  long time1,time2;
  int c;
  time1=System.currentTimeMillis();
//  /*ðÅÝÅÅÐò*/
//  for(int i=a.length-1;i>1;i--)
//  {
//   for(int j=0;j<i;j++)
//   {
//
//    if(a[j]<a[j+1])
//    {
//     c=a[j];
//     a[j]=a[j+1];
//     a[j+1]=c;
//    }
//   }
//  }
//  /*Ñ¡ÔñÅÅÐò*/
//  int pos=0;
//  for(int i=0;i<a.length-2;i++)
//  {
//   for(int j=i;j<a.length-1;j++)
//   {
//    if(a[pos]<a[j+1])
//     pos=j+1;
//   }
//   c=a[i];
//   a[i]=a[pos];
//   a[pos]=c;
//   pos=i+1;
//  }
//  /*²åÈëÅÅÐò*/
//  for(int i=1;i<a.length;i++)
//  {
//   c=a[i];
//   int m=i-1;
//   while(m>=0&&a[m]<c)
//   {
//    a[m+1]=a[m];
//    m--;
//   }
//   a[m+1]=c;
//  }
//  /*Ï£¶ûÅÅÐò*/
//  int h=1;
//  int m=0;
//  while(3*h+1<a.length)
//   h=3*h+1;
//  while(h>0)
//  {
//   for(int i=h;i<a.length;i++)
//   {
//    c=a[i];
//    m=i-h;
//    while(m>=0&&a[m]<c)
//    {
//     a[m+h]=a[m];
//     m-=h;
//    }
//    a[m+h]=c;
//    
//   }
//   h=(h-1)/3;
//  }
  /*¿ìËÙÅÅÐò*/
  provide(a,0,a.length-1);
  time2=System.currentTimeMillis();
  System.out.println("time:"+(time2-time1));
 }
 /*µÝ¹éµ÷Óû®·Ö*/
 public static void provide(int[] a,int left,int right)
 {
  try
  {
   if(right<=left)
    return;
   else
   {
    /*ÉèÖûù×¼µã*/
    int prov=a[right];
    /*È¡µÃ»®·ÖÖжϵã*/
    int par=partitionIt(a,left,right,prov);
    /*¶Ô»®·ÖºóµÄÁ½±ßÔٴλ®·Ö*/
    provide(a,left,par-1);
    provide(a,par+1,right);
    
   }
  }
  catch(Exception e)
  {
   System.out.println("eer:"+left+"."+right);
  }
 }
 /*»®·ÖËã·¨*/
 public static int partitionIt(int[] a,int left,int right,int prov)
 {
  /*ÉèÖÃ×óÓҶ˵ãµÄÖ¸Õë*/
  int leftP=left-1;
  int rightP=right;
  int c;//ÓÃÓÚ½»»»µÄÖмä±äÁ¿
  /*µ±×óÓÒÖ¸ÕëδÏàÓöʱ¼ÌÐø²Ù×÷*/
  while(leftP<rightP)
  {
   /*µ±×óÖ¸ÕëµÄÊý¾ÝСÓÚ»ù×¼ÖµÊ±Ìø³ö*/
   while(leftP<a.length-1&&a[++leftP]>prov)
    ;
   /*µ±ÓÒÖ¸ÕëµÄÊý¾Ý´óÓÚ»ù×¼ÖµÊ±Ìø³ö*/
   while(rightP>leftP&&a[--rightP]<prov)
    ; 
   /*×óÓÒÖ¸Õ붼ͣÏÂʱ½»»»Êý¾Ý*/
   c=a[leftP];
   a[leftP]=a[rightP];
   a[rightP]=c;
  } 
  /*»®·Ö½áÊø£¬½«»ù×¼µãÓëÖ¸ÕëµÄÏàÓöµã½»»»*/
  c=a[rightP];
  a[rightP]=a[right];
  a[right]=c; 
  return leftP;
 }

- ×÷Õߣº µ¶½£Ð¥ 2007Äê03ÔÂ28ÈÕ, ÐÇÆÚÈý 18:16¡¡ »Ø¸´£¨1£© |¡¡ ÒýÓã¨0£© ¼ÓÈ벩²É

³É¹¦ÊǵȲ»À´µÄ

  ³É¹¦ÊÇʲô£¬¹í²ÅÖªµÀ£¬¶Ô²»Í¬µÄÈËÀ´Ëµ£¬³É¹¦¾ßÓв»Í¬µÄº¬Ò壬Ȼ¶øÈçºÎ²ÅÄܹ»»ñµÃ³É¹¦Ó¦¸ÃÊÇ´ó¼Ò¶¼¹ØÐĵϰÌ⣬°üÀ¨ÎÒ×Ô¼º£¬µ«ÎÒ×Ô¼º¶¼ÊÇÃÔãµÄ£¬ÎÒÏòÍù³É¹¦£¬È´Ò²²»Í£µÄ´í¹ýÈ¥ÕùÈ¡³É¹¦µÄ»ú»á£¬»ØÏëÔÙÈý£¬Æäʵ¾ÍÊÇ×Ô¼ºÔõÒ»¸öÀÁ×ÖÁ˵á£

   ºÜ¶àÈÕ×Ó֮ǰ¾ÍÔø¾­Ëµ¹ýҪѧÕâÑùѧÄÇÑù£¬½á¹ûÈýÄê¹âÒõÒѾ­ÊÅÈ¥£¬ÎÒÈ´ÒÀ¾ÉÊÇÒ»¸ö³ýÁËJ2meÖ®Íâɶ¶¼²»»áµÄ°ë²Ð£¬¶øÇÒ¸ù±¾Ã»ÓÐÒ»µãÏëѧϰµÄÄîÍ·£¬¶øÉí±ßµÄÐÖµÜÃÇÈ´Ò»¸ö¸ö¶¼¿ªÊ¼Éí±­Ê®°Ë°ãÎäÒÕ£¬ÓÐʱºòÌýËûÃÇÌÖÂÛ¼¼ÊõÎÊÌ⣬ÎÒ»ù±¾ÉÏÊÇÔÆÀïÎíÀ¸Ð¾õ×Ô¼º¾Í¸ú±»Âñ½øÁËÍÁ¶ÑÀïµÄËÀÈËÒ»Ñù£¬ÒѾ­¿ì±»Ê±´úËùÅׯú¡£

    ÎÒÔøËµ×Ô¼º²»Ô¸ÒâÔÙ×ö¼¼Êõ£¬ÏëÍù¹ÜÀíµÄ·ÉÏ·¢Õ¹£¬È»¶øµ±»ú»áÕæµÄÀ´µ½ÎÒÃæÇ°µÄʱºò£¬µ±Ä³¹«Ë¾Á¦ÑûÎÒÈ¥×öËûÃÇ¿ª·¢ÍŶӵÄLeaderµÄʱºò£¬ÎÒȴήËõÁË£¬ÎÒµ±È»»áÕÒÖÖÖÖÀíÓÉÀ´½âÊÍ×Ô¼º²»ÄܽÓÊÜÕâ¸öְλ£¬È»¶øÎÒ×Ô¼ºÐÄÀï×îÇå³þ£¬ÎÒÊǺ¦Å£¬ÎÒûÓÐÈκÎÒ»µãÕâ·½ÃæµÄ¾­Ñ飬ÎÒº¦ÅÂ×Ô¼º×ö²»ÁË»á¶ÔÈ˲»ºÃ½»´ý£¬ÎÒÅÂ×Ô¼º¶ªÈË£¬È»¶øÎªÊ²Ã´ÎÒ×ö²»µ½ÄØ£¬»¹²»ÊÇÒòΪÎÒûÓкúóäµçô£¬¾­ÑéÔ­±¾¾ÍÊÇÔÚʵ¼ùÖлýÀ۵쬶øÎÒÈ´ÀË·ÑÁËÕâô¶àʱ¼ä£¬ÎÒÕâʱºò²ÅÖªµÀ£¬YYÊÇ¿ªÐĵģ¬È»¶øµ±ÏÖʵÀ´µ½Äã¸úǰÄãÈ´ÒÀ¾ÉÖ»ÄÜYY¶ø²»¸Ò½ÓÊܵÄʱºò£¬ÄãÕæµÄ¾ÍÊǸöÌìɱµÄ¼úÈË¡£

    ³É¹¦ÊǵȲ»À´µÄ£¬2007Äê´º½ÚÂíÉϾ͵½ÁË£¬ÐµÄÒ»ÄêÓÖ¸ÃÀ­¿ª´óÄ»£¬È˶¼ÔÚ½¥½¥ÀÏÈ¥£¬ÔÙ²»»¨Ê±¼äѧϰ£¬Ädzɹ¦¾ÍÓÀÔ¶Ö»ÄܳÉΪÄãÕí±ßµÄÒ»¸öÃÎÁË£¬Ò²Ðí»¹´ø×ÅЩÐíµÄ¿ÚË®...

- ×÷Õߣº µ¶½£Ð¥ 2007Äê01ÔÂ29ÈÕ, ÐÇÆÚÒ» 09:55¡¡ »Ø¸´£¨4£© |¡¡ ÒýÓã¨0£© ¼ÓÈ벩²É

J2meÈçºÎ²¥·ÅÉùÒô

ÔÚÊÖ»úÓ¦ÓûòÕßÊÖ»úÓÎÏ·Öж¼»áÓõ½ÒôЧ£¬ËùÒÔÈçºÎ²¥·ÅÒôЧÊdzÌÐòÓ¦¸Ã½â¾öµÄÎÊÌ⣬ÏÖÔÚµÄÒôЧһ°ãÓÐËÄÖÖ£¬amr,mid,wav,mp3£¬¶ÔJ2meÀ´Ëµ£¬×îÊÊÓõÄÊÇmidÒôЧ£¬ÏÂÃæ¸ø³öµÄ´úÂëÊÇÎÒµÄÉùÒô²¥·ÅÀ࣬ÊÊÓÃÓÚËÄÖÖÒôЧ¸ñʽ£¬ÔÚ´´½¨²¥·ÅÆ÷µÄʱºòÌṩÁËÁ½ÖÖ·½Ê½£¬Ò»ÖÖÊÇÖ±½Ó¶ÁÈ¡×ÊÔ´ÎļþµÄ´´½¨·½Ê½£¬Ò»ÖÖÊÇÏÈ´Ó±¾µØ»òÕßÍøÂç»ñÈ¡µ½°üº¬ÉùÒôµÄÁ÷byte[]µÄ´´½¨·½Ê½

/*ÊÖ»ú²©¿Í¿Í»§¶Ë.ÉùÒôÀà
¿ª·¢£ºÀî¹û
¿ª·¢¿ªÊ¼ÈÕÆÚ£º£²£°£°£¶ÄꣵÔ£¸ÈÕ
*/
import javax.microedition.media.*;
import java.io.*;
public class soundPlayer

 public String pType;//ÊÖ»úÐͺŠ
 public final String[] mediaType=new String[]{"audio/x-wav","audio/midi","audio/mpeg","audio/amr"}; 
 public soundPlayer(String s)
 {
  pType=s;
 }
 
 /*´Ó×Ö½ÚÊý×éÀï»ñÈ¡ÊäÈëÁ÷*/
 public InputStream getInputStream(byte[] data)
 {
  try
  {
   ByteArrayInputStream bis=new ByteArrayInputStream(data);
   return (InputStream)bis;
  }
  catch(Exception e)
  {
   return null;
  }
 }
 public Player createPlayer(InputStream is,String t,int loop)
 {
  Player player;
  if(is!=null)
  {
   try
   {
    if(t.equals("mid"))
    player=Manager.createPlayer(is,mediaType[1]);
    else
    if(t.equals("wav"))
    player=Manager.createPlayer(is,mediaType[0]);
    else
    if(t.equals("mp3"))
    player=Manager.createPlayer(is,mediaType[2]);
    else
    if(t.equals("amr"))
    player=Manager.createPlayer(is,mediaType[3]);
    else
    return null;
   }
   catch(Exception e)
   {
    return null;
   }
  }
  else
  return null;
  player.setLoopCount(loop);  
  return player;  
 }
 /*´´½¨²¥·ÅÆ÷*/
 public Player createPlayer(String s,int loop)
 {
  Player player;
  try
  {
   InputStream is=getClass().getResourceAsStream(s);
   String t=s.substring(s.indexOf('.')+1,s.length());
   if(t.equals("mid"))
   player=Manager.createPlayer(is,mediaType[1]);
   else
   if(t.equals("wav"))
   player=Manager.createPlayer(is,mediaType[0]);
   else
   if(t.equals("mp3"))
   player=Manager.createPlayer(is,mediaType[2]);
   else
   if(t.equals("amr"))
   player=Manager.createPlayer(is,mediaType[3]);
   else
   return null;
  }
  catch(Exception e)
  {
   return null;
  }
  player.setLoopCount(loop);  
  return player;
 }
 /*²¥·ÅÉùÒô*/
 public void playSound(Player p)
 {
  try
  {
   //System.out.println(p.getState());
   if(p.getState()!=400)
   p.start();
  }
  catch(Exception e)
  {
  }
 }
 /*ÔÝÍ£ÉùÒô*/
 public void pauseSound(Player p)
 {
  try
  {
   if(p.getState()==400)
   p.stop();
  }
  catch(Exception e)
  {
  }
 }
 /*Í£Ö¹ÉùÒô*/
 public void stopSound(Player p)
 {
  try
  {
   if(p.getState()==400)
   p.stop();
   if(!pType.equals("NOKIA"))
   p.deallocate();
  }
  catch(Exception e)
  {
   System.out.println(e);
  }
 }
 /*¹Ø±ÕÉùÒô*/
 public void closeSound(Player p)
 {
  try
  {
   stopSound(p);
   p.close();
  }
  catch(Exception e)
  {
  }
 }
}

- ×÷Õߣº µ¶½£Ð¥ 2006Äê12ÔÂ13ÈÕ, ÐÇÆÚÈý 14:06¡¡ »Ø¸´£¨0£© |¡¡ ÒýÓã¨0£© ¼ÓÈ벩²É

jsr75Ïà¹Ø²Ù×÷´úÂëа汾

Õâ¸ö°æ±¾±È֮ǰÄǸö´úÂë¶àÁËÈçÏÂÄÚÈÝ£º

1.Ôö¼ÓÁË»úÐÍÅжϣ¬Ôö¼ÓÁËÁ½¸ö·½·¨ÓÃÒÔÖ±½Ó¶ÁÈ¡ÊÖ»úµÄͼƬÎļþºÍÁåÉùÎļþ

2.ÁÐ±í·½·¨Ôö¼ÓÁ˸ùĿ¼²é¿´

3.ÍêÉÆÁËPIM¶ÁÈ¡·½·¨£¬Ö»¶ÁÈ¡µç»°±¾ÀïµÄÁªÏµÈËÐÕÃûºÍµç»°

4.ÍêÉÆÁËдÎļþ²Ù×÷£¬ÔÚ·ÇÇ¿ÖÆÐ´ÈëµÄÇé¿öÏÂ×öÁËÒì³£ÅжÏ

ÈçÏ´úÂëÀïµÄ×¢ÊͲ¿·ÖÊÇÎÒ×Ô¼ºÓÃÀ´µ÷ÊÔÓõģ¬¿ÉÒÔ²»Òª

/*ÎļþϵͳÀà
¿ª·¢£ºÀî¹û
¿ª·¢¿ªÊ¼ÈÕÆÚ£º2006Äê12ÔÂ11ÈÕ
*/
import javax.microedition.io.*;
import javax.microedition.io.file.*;
import java.io.*;
import java.util.*;
import javax.microedition.pim.*;
public class fileSystem
{
 int fileSize;//Îļþ×Ü´óС
 int currentProgress;//¶ÁÈ¡½ø¶È
 String platform;
 String message;
 String imageFilePath;
 String soundFilePath;
 public static final String S40_DEVICE[]={"2610","2855","2865","3152","3155","5140","5200","5300","6020","6060","6080","6085","6101","6102","6103","6111","6125","6126","6131","6133","6136","6151","6152","6155","6155","6165","6170","6230","6233","6234","6235","6255","6265","6270","6280","6282","6288","6822","7260","7270","7360","7370","7373","7390","8800",}; 
 public fileSystem()
 {
  platform = System.getProperty("microedition.platform");
  if(platform.startsWith("SonyEricsson"))
  {
     imageFilePath="c:/pictures/";
     soundFilePath="c:/sounds/";
    }
  else
    if(platform.startsWith("Nokia"))
    {
    boolean isS40=false;
     for(int i=0;i<S40_DEVICE.length;i++)
     {
      if(platform.startsWith("Nokia".concat(S40_DEVICE[i])))
      {
      isS40=true;
      break;
     }
     }
     if(isS40)
     {
     imageFilePath="C:/predefgallery/predefphotos/";
     soundFilePath="C:/predefgallery/predefrecordings/";
    }
    else
    {
     imageFilePath="C:/Data/Images/";
     soundFilePath="C:/Data/Sounds/Digital/";
    }
   }
   else
   {
    imageFilePath="/";
    soundFilePath="/";
   }  
 }
 /**±£´æÎļþ
 * @path:·¾¶
 * @fileData:ÎļþÊý¾Ý
 * @overrite:ÊÇ·ñÇ¿ÖÆ¸²¸Ç±£´æ
 * @return: -1:ÎļþÒÑ´æÔÚ,0:³öÏÖÒì³£,1:±£´æ³É¹¦
 */
 public int saveFile(String path,byte[] fileData,boolean overrite)
 {
  try
  {
   FileConnection fc=(FileConnection)(Connector.open(path));
   if(fc.exists())
   {
    if(overrite)
    {
     fc.create();
     fc.setWritable(true);
     OutputStream os=fc.openOutputStream();
     os.write(fileData);
     os.close();  
     return 1;   
    }
    else
    return -1;
   }
   else
   {
    fc.create();
    fc.setWritable(true);
    OutputStream os=fc.openOutputStream();
    os.write(fileData);
    os.close();
    return 1;
   }
  }
  catch(Exception e)
  {
   System.out.println("saveFileErr:"+e.toString());
   return 0;
  }
 } 
 /*ɾ³ýÎļþ*/
 public void deleteFile(String path)
 {
  try
  {
   FileConnection fc=(FileConnection)(Connector.open(path));
   if(fc.exists())
   fc.delete();
  }
  catch(Exception e)
  {
   System.out.println("deleteFileErr:"+e.toString());
  }
 }
 
 /**»ñȡĿ¼ÎļþÁбí
 * @path:·¾¶
 * @type:ÁбíÀàÐÍ(0:Îļþ¼ÐºÍÎļþ¶¼ÁÐ;1:Ö»ÁÐÎļþ¼Ð;2:Ö»ÁÐÎļþ)
 * @return:Ö¸¶¨Â·¾¶ÏµÄĿ¼ºÍÎļþµÄÃû³ÆÁбí
 */
 public Vector getList(String path,int type)
 {
  try
  {
   Enumeration en=null;
   Vector listVec=new Vector(0,1);
   if(path.equals("root"))
   { 
    en=FileSystemRegistry.listRoots();
   }
   else
   {
     FileConnection fc=(FileConnection)(Connector.open(path));
     if(fc.exists())
    en=fc.list();
   }
   if(en!=null)
   {
    while(en.hasMoreElements())
    {
     String name=(String)(en.nextElement());
     switch(type)
     {
      case 0:
      listVec.addElement(name);
      break;
      case 1:
      if(name.indexOf("/")!=-1)
      listVec.addElement(name);
      break;
      case 2:
      if(name.indexOf("/")==-1)
      listVec.addElement(name);
      break;      
     }
    }
    return listVec;
   }
   else
   {
    System.out.println("pathErr");
    return null;
   }
  }
  catch(Exception e)
  {
   System.out.println("listErr:"+e.toString());
   message=e.toString();
   return null;   
  }
 }
 /*ͼƬÎļþÁбí*/
 public Vector getImageList()
 {
  Vector list=getList("file:///"+imageFilePath,0);
  return list;
 }
 /*ÉùÒôÎļþÁбí*/
 public Vector getSoundList()
 {
  Vector list=getList("file:///"+soundFilePath,0);
  return list;
 }
 /*¶ÁÈ¡Îļþ
 $path:Îļþ·¾¶
 $showProgress:ÊÇ·ñÏÔʾ¶ÁÈ¡½ø¶È£¬×¢Ò⣬Èç¹ûÑ¡ÔñÏÔʾ½ø¶È»áµ¼Ö¶ÁÈ¡ÎļþËٶȱäÂý
  $return:Èç¹û³É¹¦»ñÈ¡µ½ÎļþÔò·µ»Ø´æ´¢ÎļþÊý¾ÝµÄÊý×飬·ñÔò·µ»Ønull
  */
 public byte[] readFile(String path,boolean showProgress)
 {
  try
  {
   FileConnection fc=(FileConnection)(Connector.open(path));
   if(fc.exists())
   {
    message="Îļþ´æÔÚ";
    InputStream is=fc.openInputStream();
    fileSize=is.available();
    byte[] temp=new byte[fileSize];
    /*Èç¹ûÐèÒªÏÔʾ½ø¶È*/
    if(showProgress)
    {
     int ch;
     int i=0;
     int step=fileSize/100;
     currentProgress=0;
     while((ch=is.read())!=-1)
     {
      temp[i++]=(byte)ch;
      if(i%step==0)
      currentProgress++;
     }
    }
    else
    is.read(temp);
    is.close();
    return temp;
   }
   else
   return null;
  }
  catch(Exception e)
  {
   System.out.println("readFileErr:"+path+e.toString());
   message=e.toString();
   return null;
  }
 }
 /**»ñÈ¡ÊÖ»úÖеÄÁªÏµÈËÐÅÏ¢
 * @return:°üº¬ÁªÏµÈËÐÕÃûºÍµç»°µÄVector
 */
 public Vector readPIM()
 {
  try
  {
   Vector pim=new Vector(0,1);
   ContactList cl=(ContactList)(PIM.getInstance().openPIMList(PIM.CONTACT_LIST,PIM.READ_ONLY));
   Enumeration en=cl.items();
   Vector c=new Vector(0,1);
   while(en.hasMoreElements())
   {
    c.addElement((Contact)(en.nextElement()));
   }
   System.out.println(c.size());
   for(int i=0;i<c.size();i++)
   {
    Contact temp=(Contact)(c.elementAt(i));
    if(cl.isSupportedField(Contact.TEL))
    {
     String name="",phone="";
     if(cl.isSupportedField(Contact.FORMATTED_NAME))
     {
      for(int m=0;m<temp.countValues(Contact.FORMATTED_NAME);m++)
      name+="&"+temp.getString(Contact.FORMATTED_NAME,m);
     }
     name+="&";
     for(int m=0;m<temp.countValues(Contact.TEL);m++)
     phone+="&"+temp.getString(Contact.TEL,m);
     phone+="&";
      pim.addElement(new String[]{name,phone});
    }
       //pim.addElement((String)(temp.getString(Contact.FORMATTED_NAME,m)));
       //System.out.println(temp.getString(Contact.TEL,m));
//     message="ÊýÁ¿:"+c.size()+
//     (cl.isSupportedField(Contact.NAME)?"Name:"+temp.countValues(Contact.NAME):"")
//     +(cl.isSupportedField(Contact.ADDR)?"addr:"+temp.countValues(Contact.ADDR):"")
//     +(cl.isSupportedField(Contact.EMAIL)?"Email:"+temp.countValues(Contact.EMAIL):"")
//     +(cl.isSupportedField(Contact.FORMATTED_NAME)?"FORMATTED_NAME:"+temp.countValues(Contact.FORMATTED_NAME):"")
//     +(cl.isSupportedField(Contact.NICKNAME)?"NICKNAME:"+temp.countValues(Contact.NICKNAME):"")
//     +(cl.isSupportedField(Contact.TEL)?"TEL:"+temp.countValues(Contact.TEL):"")
//     +(cl.isSupportedField(Contact.TITLE)?"Title:"+temp.countValues(Contact.TITLE):"");
   }
   return pim;
  }
  catch(Exception e)
  {
   System.out.println(e);
   message="¶ÁÈ¡PIMʧ°Ü:"+e.toString();
   return null;
  }
 }
}

- ×÷Õߣº µ¶½£Ð¥ 2006Äê12ÔÂ13ÈÕ, ÐÇÆÚÈý 14:02¡¡ »Ø¸´£¨1£© |¡¡ ÒýÓã¨0£© ¼ÓÈ벩²É

MD5Ëã·¨J2me°æ±¾

ÊÇÔÚºï¸çºÍ°¢ÍÁµÄ°ïÖúϵõ½µÄ£¬Ö±½ÓÌù´úÂ룬ԭ°æÖ»ÓÐÒ»¸öÈë¿ÚÊÇ×Ö·û´®Èë¿Ú£¬ÔÚʵ¼ÊʹÓÃÖУ¬´ËÈë¿ÚÔÚ¼ÆËãÎļþµÄMD5ʱ»áÓÐÎÊÌ⣬ËùÒÔÎÒ¼ÓÁËÒ»¸öbyte[]Èë¿Ú¡£

/*ÊÖ»ú²©¿Í¿Í»§¶Ë.MD5Âë¼ÆËã
¿ª·¢£ºÀî¹û
¿ª·¢¿ªÊ¼ÈÕÆÚ£º£²£°£°£¶ÄꣵÔ£¸ÈÕ
*/
public class MD5 {

    /* ÏÂÃæÕâЩS11-S44ʵ¼ÊÉÏÊÇÒ»¸ö4*4µÄ¾ØÕó£¬ÔÚԭʼµÄCʵÏÖÖÐÊÇÓÃ#define ʵÏÖµÄ,ÕâÀï°ÑËüÃÇ

    /* ʵÏÖ³ÉΪstatic finalÊDZíʾÁËÖ»¶Á£¬ÇÐÄÜÔÚͬһ¸ö½ø³Ì¿Õ¼äÄڵĶà¸öInstance¼ä¹²Ïí*/

    static final int S11 = 7;

    static final int S12 = 12;

    static final int S13 = 17;

    static final int S14 = 22;


    static final int S21 = 5;

    static final int S22 = 9;

    static final int S23 = 14;

    static final int S24 = 20;


    static final int S31 = 4;

    static final int S32 = 11;

    static final int S33 = 16;

    static final int S34 = 23;


    static final int S41 = 6;

    static final int S42 = 10;

    static final int S43 = 15;

    static final int S44 = 21;

    static final byte[] PADDING = {-128, 0, 0, 0, 0, 0, 0, 0, 0,

                                   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

                                   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

                                   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

    /* ÏÂÃæµÄÈý¸ö³ÉÔ±ÊÇMD5¼ÆËã¹ý³ÌÖÐÓõ½µÄ3¸öºËÐÄÊý¾Ý£¬ÔÚԭʼµÄCʵÏÖÖÐ */

    /*   ±»¶¨Òåµ½MD5_CTX½á¹¹ÖÐ */

    private long[] state = new long[4];  // state (ABCD)

    private long[] count = new long[2];  // number of bits, modulo 2^64 (lsb first)

    private byte[] buffer = new byte[64]; // input buffer

    /* digestHexStrÊÇMD5µÄΨһһ¸ö¹«¹²³ÉÔ±£¬ÊÇ×îÐÂÒ»´Î¼ÆËã½á¹ûµÄ16½øÖÆASCII±íʾ. */

    public String digestHexStr;

    /* digest,ÊÇ×îÐÂÒ»´Î¼ÆËã½á¹ûµÄ2½øÖÆÄÚ²¿±íʾ£¬±íʾ128bitµÄMD5Öµ. */

    private byte[] digest = new byte[16];

    /*  getMD5ofStrÊÇÀàMD5×îÖ÷ÒªµÄ¹«¹²·½·¨£¬Èë¿Ú²ÎÊýÊÇÄãÏëÒª½øÐÐMD5±ä»»µÄ×Ö·û´® */

    /*  ·µ»ØµÄÊDZ任ÍêµÄ½á¹û£¬Õâ¸ö½á¹ûÊÇ´Ó¹«¹²³ÉÔ±digestHexStrÈ¡µÃµÄ£®*/

    public String getMD5ofStr(String inbuf) {

        md5Init();

        md5Update(inbuf.getBytes(), inbuf.length());

        md5Final();

        digestHexStr = "";

        for (int i = 0; i < 16; i++) {
            digestHexStr += byteHEX(digest[i]);
        }

        return digestHexStr;
    }
   
    public String getMD5ofStr(byte[] inbuf)
    {

        md5Init();

        md5Update(inbuf, inbuf.length);

        md5Final();

        digestHexStr = "";

        for (int i = 0; i < 16; i++) {
            digestHexStr += byteHEX(digest[i]);
        }

        return digestHexStr;
    }     

    /* ÕâÊÇMD5Õâ¸öÀàµÄ±ê×¼¹¹Ô캯Êý£¬JavaBeanÒªÇóÓÐÒ»¸öpublicµÄ²¢ÇÒûÓвÎÊýµÄ¹¹Ô캯Êý. */

    public MD5() {
        md5Init();
    }

    /* md5InitÊÇÒ»¸ö³õʼ»¯º¯Êý£¬³õʼ»¯ºËÐıäÁ¿£¬×°Èë±ê×¼µÄ»ÃÊý */
    private void md5Init() {

        count[0] = 0L;

        count[1] = 0L;

        ///* Load magic initialization constants.

        state[0] = 0x67452301L;

        state[1] = 0xefcdab89L;

        state[2] = 0x98badcfeL;

        state[3] = 0x10325476L;

        return;

    }

    /* F, G, H ,I ÊÇ4¸ö»ù±¾µÄMD5º¯Êý£¬ÔÚԭʼµÄMD5µÄCʵÏÖÖУ¬ÓÉÓÚËüÃÇÊÇ */

    /* ¼òµ¥µÄλÔËË㣬¿ÉÄܳöÓÚЧÂʵĿ¼ÂǰÑËüÃÇʵÏÖ³ÉÁ˺꣬ÔÚjavaÖУ¬*/

    /* ÎÒ°ÑËüÃÇʵÏÖ³ÉÁËprivate·½·¨£¬Ãû×Ö±£³ÖÁËÔ­À´CÖеġ£ */
    private long F(long x, long y, long z) {
        return (x & y) | ((~x) & z);
    }


    private long G(long x, long y, long z) {
        return (x & z) | (y & (~z));
    }


    private long H(long x, long y, long z) {
        return x ^ y ^ z;
    }


    private long I(long x, long y, long z) {
        return y ^ (x | (~z));
    }

    /* FF,GG,HHºÍII½«µ÷ÓÃF,G,H,I½øÐнüÒ»²½±ä»» FF, GG, HH, and II transformations */

    /* for rounds 1, 2, 3, and 4. Rotation is separate from addition to prevent recomputation. */
    private long FF(long a, long b, long c, long d, long x, long s, long ac) {

        a += F(b, c, d) + x + ac;

        a = ((int) a << s) | ((int) a >>> (32 - s));

        a += b;

        return a;
    }


    private long GG(long a, long b, long c, long d, long x, long s, long ac) {

        a += G(b, c, d) + x + ac;

        a = ((int) a << s) | ((int) a >>> (32 - s));

        a += b;

        return a;
    }


    private long HH(long a, long b, long c, long d, long x, long s, long ac) {

        a += H(b, c, d) + x + ac;

        a = ((int) a << s) | ((int) a >>> (32 - s));

        a += b;

        return a;
    }


    private long II(long a, long b, long c, long d, long x, long s, long ac) {

        a += I(b, c, d) + x + ac;

        a = ((int) a << s) | ((int) a >>> (32 - s));

        a += b;

        return a;
    }

    /* md5UpdateÊÇMD5µÄÖ÷¼ÆËã¹ý³Ì£¬inbufÊÇÒª±ä»»µÄ×Ö½Ú´®£¬inputlenÊdz¤¶È£¬Õâ¸ö */

    /* º¯ÊýÓÉgetMD5ofStrµ÷Ó㬵÷ÓÃ֮ǰÐèÒªµ÷ÓÃmd5init£¬Òò´Ë°ÑËüÉè¼Æ³Éprivate */
    private void md5Update(byte[] inbuf, int inputLen) {

        int i, index, partLen;

        byte[] block = new byte[64];

        index = (int) (count[0] >>> 3) & 0x3F;

        // /* Update number of bits */

        if ((count[0] += (inputLen << 3)) < (inputLen << 3))

            count[1]++;

        count[1] += (inputLen >>> 29);

        partLen = 64 - index;

        // Transform as many times as possible.

        if (inputLen >= partLen) {

            md5Memcpy(buffer, inbuf, index, 0, partLen);

            md5Transform(buffer);

            for (i = partLen; i + 63 < inputLen; i += 64) {

                md5Memcpy(block, inbuf, 0, i, 64);

                md5Transform(block);

            }

            index = 0;

        } else

            i = 0;

        ///* Buffer remaining input */

        md5Memcpy(buffer, inbuf, index, i, inputLen - i);

    }


    /* md5FinalÕûÀíºÍÌîдÊä³ö½á¹û */
    private void md5Final() {

        byte[] bits = new byte[8];

        int index, padLen;

        ///* Save number of bits */

        Encode(bits, count, 8);

        ///* Pad out to 56 mod 64.

        index = (int) (count[0] >>> 3) & 0x3f;

        padLen = (index < 56) ? (56 - index) : (120 - index);

        md5Update(PADDING, padLen);

        ///* Append length (before padding) */

        md5Update(bits, 8);

        ///* Store state in digest */

        Encode(digest, state, 16);

    }


    /* md5MemcpyÊÇÒ»¸öÄÚ²¿Ê¹ÓõÄbyteÊý×éµÄ¿é¿½±´º¯Êý£¬´ÓinputµÄinpos¿ªÊ¼°Ñ */

    /* len³¤¶ÈµÄ×Ö½Ú¿½±´µ½outputµÄoutposλÖÿªÊ¼. */
    private void md5Memcpy(byte[] output, byte[] input, int outpos, int inpos, int len) {
        int i;

        for (i = 0; i < len; i++)
            output[outpos + i] = input[inpos + i];
    }


    /* md5TransformÊÇMD5ºËÐı任³ÌÐò£¬ÓÐmd5Updateµ÷Óã¬blockÊÇ·Ö¿éµÄԭʼ×Ö½Ú. */
    private void md5Transform(byte block[]) {
        long a = state[0], b = state[1], c = state[2], d = state[3];

        long[] x = new long[16];


        Decode(x, block, 64);

        /* Round 1 */

        a = FF(a, b, c, d, x[0], S11, 0xd76aa478L); /* 1 */

        d = FF(d, a, b, c, x[1], S12, 0xe8c7b756L); /* 2 */

        c = FF(c, d, a, b, x[2], S13, 0x242070dbL); /* 3 */

        b = FF(b, c, d, a, x[3], S14, 0xc1bdceeeL); /* 4 */

        a = FF(a, b, c, d, x[4], S11, 0xf57c0fafL); /* 5 */

        d = FF(d, a, b, c, x[5], S12, 0x4787c62aL); /* 6 */

        c = FF(c, d, a, b, x[6], S13, 0xa8304613L); /* 7 */

        b = FF(b, c, d, a, x[7], S14, 0xfd469501L); /* 8 */

        a = FF(a, b, c, d, x[8], S11, 0x698098d8L); /* 9 */

        d = FF(d, a, b, c, x[9], S12, 0x8b44f7afL); /* 10 */

        c = FF(c, d, a, b, x[10], S13, 0xffff5bb1L); /* 11 */

        b = FF(b, c, d, a, x[11], S14, 0x895cd7beL); /* 12 */

        a = FF(a, b, c, d, x[12], S11, 0x6b901122L); /* 13 */

        d = FF(d, a, b, c, x[13], S12, 0xfd987193L); /* 14 */

        c = FF(c, d, a, b, x[14], S13, 0xa679438eL); /* 15 */

        b = FF(b, c, d, a, x[15], S14, 0x49b40821L); /* 16 */

        /* Round 2 */

        a = GG(a, b, c, d, x[1], S21, 0xf61e2562L); /* 17 */

        d = GG(d, a, b, c, x[6], S22, 0xc040b340L); /* 18 */

        c = GG(c, d, a, b, x[11], S23, 0x265e5a51L); /* 19 */

        b = GG(b, c, d, a, x[0], S24, 0xe9b6c7aaL); /* 20 */

        a = GG(a, b, c, d, x[5], S21, 0xd62f105dL); /* 21 */

        d = GG(d, a, b, c, x[10], S22, 0x2441453L); /* 22 */

        c = GG(c, d, a, b, x[15], S23, 0xd8a1e681L); /* 23 */

        b = GG(b, c, d, a, x[4], S24, 0xe7d3fbc8L); /* 24 */

        a = GG(a, b, c, d, x[9], S21, 0x21e1cde6L); /* 25 */

        d = GG(d, a, b, c, x[14], S22, 0xc33707d6L); /* 26 */

        c = GG(c, d, a, b, x[3], S23, 0xf4d50d87L); /* 27 */

        b = GG(b, c, d, a, x[8], S24, 0x455a14edL); /* 28 */

        a = GG(a, b, c, d, x[13], S21, 0xa9e3e905L); /* 29 */

        d = GG(d, a, b, c, x[2], S22, 0xfcefa3f8L); /* 30 */

        c = GG(c, d, a, b, x[7], S23, 0x676f02d9L); /* 31 */

        b = GG(b, c, d, a, x[12], S24, 0x8d2a4c8aL); /* 32 */

        /* Round 3 */

        a = HH(a, b, c, d, x[5], S31, 0xfffa3942L); /* 33 */

        d = HH(d, a, b, c, x[8], S32, 0x8771f681L); /* 34 */

        c = HH(c, d, a, b, x[11], S33, 0x6d9d6122L); /* 35 */

        b = HH(b, c, d, a, x[14], S34, 0xfde5380cL); /* 36 */

        a = HH(a, b, c, d, x[1], S31, 0xa4beea44L); /* 37 */

        d = HH(d, a, b, c, x[4], S32, 0x4bdecfa9L); /* 38 */

        c = HH(c, d, a, b, x[7], S33, 0xf6bb4b60L); /* 39 */

        b = HH(b, c, d, a, x[10], S34, 0xbebfbc70L); /* 40 */

        a = HH(a, b, c, d, x[13], S31, 0x289b7ec6L); /* 41 */

        d = HH(d, a, b, c, x[0], S32, 0xeaa127faL); /* 42 */

        c = HH(c, d, a, b, x[3], S33, 0xd4ef3085L); /* 43 */

        b = HH(b, c, d, a, x[6], S34, 0x4881d05L); /* 44 */

        a = HH(a, b, c, d, x[9], S31, 0xd9d4d039L); /* 45 */

        d = HH(d, a, b, c, x[12], S32, 0xe6db99e5L); /* 46 */

        c = HH(c, d, a, b, x[15], S33, 0x1fa27cf8L); /* 47 */

        b = HH(b, c, d, a, x[2], S34, 0xc4ac5665L); /* 48 */

        /* Round 4 */

        a = II(a, b, c, d, x[0], S41, 0xf4292244L); /* 49 */

        d = II(d, a, b, c, x[7], S42, 0x432aff97L); /* 50 */

        c = II(c, d, a, b, x[14], S43, 0xab9423a7L); /* 51 */

        b = II(b, c, d, a, x[5], S44, 0xfc93a039L); /* 52 */

        a = II(a, b, c, d, x[12], S41, 0x655b59c3L); /* 53 */

        d = II(d, a, b, c, x[3], S42, 0x8f0ccc92L); /* 54 */

        c = II(c, d, a, b, x[10], S43, 0xffeff47dL); /* 55 */

        b = II(b, c, d, a, x[1], S44, 0x85845dd1L); /* 56 */

        a = II(a, b, c, d, x[8], S41, 0x6fa87e4fL); /* 57 */

        d = II(d, a, b, c, x[15], S42, 0xfe2ce6e0L); /* 58 */

        c = II(c, d, a, b, x[6], S43, 0xa3014314L); /* 59 */

        b = II(b, c, d, a, x[13], S44, 0x4e0811a1L); /* 60 */

        a = II(a, b, c, d, x[4], S41, 0xf7537e82L); /* 61 */

        d = II(d, a, b, c, x[11], S42, 0xbd3af235L); /* 62 */

        c = II(c, d, a, b, x[2], S43, 0x2ad7d2bbL); /* 63 */

        b = II(b, c, d, a, x[9], S44, 0xeb86d391L); /* 64 */


        state[0] += a;

        state[1] += b;

        state[2] += c;

        state[3] += d;

    }

    /* Encode°ÑlongÊý×鰴˳Ðò²ð³ÉbyteÊý×飬ÒòΪjavaµÄlongÀàÐÍÊÇ64bitµÄ£¬*/

    /* Ö»²ðµÍ32bit£¬ÒÔÊÊӦԭʼCʵÏÖµÄÓÃ;. */
    private void Encode(byte[] output, long[] input, int len) {

        int i, j;

        for (i = 0, j = 0; j < len; i++, j += 4) {

            output[j] = (byte) (input[i] & 0xffL);

            output[j + 1] = (byte) ((input[i] >>> 8) & 0xffL);

            output[j + 2] = (byte) ((input[i] >>> 16) & 0xffL);

            output[j + 3] = (byte) ((input[i] >>> 24) & 0xffL);

        }

    }

    /* Decode°ÑbyteÊý×鰴˳ÐòºÏ³É³ÉlongÊý×飬ÒòΪjavaµÄlongÀàÐÍÊÇ64bitµÄ£¬*/

    /* Ö»ºÏ³ÉµÍ32bit£¬¸ß32bitÇåÁ㣬ÒÔÊÊӦԭʼCʵÏÖµÄÓÃ;. */
    private void Decode(long[] output, byte[] input, int len) {

        int i, j;

        for (i = 0, j = 0; j < len; i++, j += 4)

            output[i] = b2iu(input[j]) |

                    (b2iu(input[j + 1]) << 8) |

                    (b2iu(input[j + 2]) << 16) |

                    (b2iu(input[j + 3]) << 24);

        return;

    }

    /* b2iuÊÇÒ»¸ö°Ñbyte°´ÕÕ²»¿¼ÂÇÕý¸ººÅµÄÔ­ÔòµÄ£¢Éýλ£¢³ÌÐò£¬ÒòΪjavaûÓÐunsignedÔËËã */
    public static long b2iu(byte b) {

        return b < 0 ? b & 0x7F + 128 : b;

    }

    /* byteHEX()£¬ÓÃÀ´°ÑÒ»¸öbyteÀàÐ͵ÄÊýת»»³ÉÊ®Áù½øÖƵÄASCII±íʾ£¬*/

    /* ÒòΪjavaÖеÄbyteµÄtoStringÎÞ·¨ÊµÏÖÕâÒ»µã£¬ÎÒÃÇÓÖûÓÐCÓïÑÔÖеÄsprintf(outbuf,"%02X",ib). */
    public static String byteHEX(byte ib) {

        /* if want to output normal letter please user DigitNormal */

        char[] DigitNormal = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',

                              'a', 'b', 'c', 'd', 'e', 'f'};

        /* if want to output capitalization letter please user DigitCap */

        /* char[] DigitCap = { '0','1','2','3','4','5','6','7','8','9',

        'A','B','C','D','E','F' }; */

        char[] ob = new char[2];

        ob[0] = DigitNormal[(ib >>> 4) & 0X0F];

        /* ob[0] = DigitCap[(ib >>> 4) & 0X0F]; */

        ob[1] = DigitNormal[ib & 0X0F];

        /* ob[1] = DigitCap[ib & 0X0F]; */

        String s = new String(ob);

        return s;
    }


    public byte[] getMD5(byte[] data1 , byte[] data2) {
        md5Init();

        md5Update(data1, data1.length);

        md5Update(data2, data2.length);

//        md5Update(Request.key , Request.key.length);

        md5Final();

        return digest;
    }

}


- ×÷Õߣº µ¶½£Ð¥ 2006Äê08ÔÂ29ÈÕ, ÐÇÆÚ¶þ 13:22¡¡ »Ø¸´£¨2£© |¡¡ ÒýÓã¨0£© ¼ÓÈ벩²É

J2meÖÐʵÏÖͼƬËõ·Å

²»¶à˵ÁË£¬Ö±½ÓÌù´úÂë

 /*ͼÏñ±ä»»*/
 public Image scaleImage(Image src,int scales1,int scales2)
 {
  return transImage(src,src.getWidth()*scales1/scales2,src.getHeight()*scales1/scales2);
 }
 public Image transImage(Image src, int w, int h)
 {
    int srcW = src.getWidth();
    int srcH = src.getHeight();
    int dstW=w,dstH=h;
    Image tmp = Image.createImage(dstW, srcH);
    Graphics g = tmp.getGraphics();
    int scale=16;   
  int delta = (srcW << scale) / dstW;//ɨÃ賤¶È
    int pos = delta / 2;//ɨÃèλÖÃ
    for (int x = 0; x < dstW; x++)
    {
      g.setClip(x, 0, 1, srcH);
      g.drawImage(src, x - (pos >> scale), 0, Graphics.LEFT | Graphics.TOP);
      pos += delta;
    }
    Image dst = Image.createImage( dstW, dstH);
    g = dst.getGraphics();
    delta = (srcH << scale) / dstH;
    pos = delta / 2;
    for (int y = 0; y < dstH; y++)
    {
      g.setClip(0,y, dstW, 1);
      g.drawImage(tmp, 0, y - (pos >> scale), Graphics.LEFT | Graphics.TOP);
      pos += delta;
    }
    return dst;
 } 

Ó÷¨¾ÙÀý:

1.½«Ò»ÕÅͼƬpicת»»³É176*208µÄͼ

pic=transImage(pic,176,208);

2.½«Ò»ÕÅͼƬpicת»»³ÉÔ­À´µÄÁ½±¶´ó

pic=scaleImage(pic,2,1);

3.½«Ò»ÕÅͼƬpicת»»³ÉÔ­À´µÄÈý·ÖÖ®¶þ

pic=scaleImage(pic,2,3);

´ÓÉÏÃæµÄÀý×Ó£¬´ó¼ÒÓ¦¸ÃÖªµÀÔõôÓÃÁ˰ɣ¬ºÇºÇ

- ×÷Õߣº µ¶½£Ð¥ 2006Äê07ÔÂ21ÈÕ, ÐÇÆÚÎå 17:37¡¡ »Ø¸´£¨5£© |¡¡ ÒýÓã¨0£© ¼ÓÈ벩²É

Jsr75ѧϰ±Ê¼Ç(Ò»)

Õâ¶Îʱ¼äÒòΪ¿ª·¢ÉÏÒªÓõ½±¾µØÎļþ£¬Òò´Ë¿ªÊ¼½Ó´¥Jsr75µÄ°ü£¬Jsr75·ÖÁ½¸ö²¿·Ö£¬Ò»²¿·ÖÊÇFile£¬¼´±¾µØÎļþϵͳ£¬Ò»²¿·ÖÊÇPIM£¬Ëµ°×Á˾ÍÊǵ绰±¾Ö®ÀàµÄÐÅÏ¢£¬ÎÒÏÈѧϰµÄÊÇFile²¿·Ö£¬Í¨¹ýimport javax.microedition.io.file.*ÀïµÄ°ü£¬¿ÉÒÔʵÏÖ×ÔÓÉ·ÃÎʱ¾»úµÄÎļþϵͳ£¬¾Í¸úWindosÀïµÄ×ÊÔ´¹ÜÀíÆ÷Ò»Ñù£¬ÔÚÕâÀïÎÒ½éÉܼ¸¸öÎÒдµÄ·½·¨

Ò».»ñȡָ¶¨Â·¾¶µÄĿ¼ºÍÎļþÁбí

 /*Ŀ¼ÎļþÁбí*/
 public Vector list(String path)
 {
  try
  {
   FileConnection fc=(FileConnection)(Connector.open(path));
   if(fc.exists())
   {
    Vector listVec=new Vector(0,1);
    Enumeration en=fc.list();
    while(en.hasMoreElements())
    {
     listVec.addElement((String)(en.nextElement()));
    }
    return listVec;
   }
   else
   return null;
  }
  catch(Exception e)
  {
   System.out.println("listErr:"+e.toString());
   return null;   
  }
 }

·½·¨ÀïµÄpath²ÎÊý¾ÍÊÇÒª²éÕҵķ¾¶£¬±ÈÈçfile:///c:/pictures/£¬Çмǣ¬Èç¹ûÊÇĿ¼Path£¬ÄÇôºóÃæµÄ/Ò»¶¨²»ÄÜÊ¡£¬·ñÔò»á²éÕÒ²»µ½ÄÚÈÝ¡£Õâ¸ö·½·¨·µ»ØµÄÊÇÒ»¸ö°üº¬ÁËÖ¸¶¨PathϵÄËùÓÐĿ¼ÃûºÍÎļþÃûµÄÏòÁ¿¡£

¶þ.½¨Á¢»òÕß±£´æÒ»¸öÎļþµ½Ö¸¶¨Â·¾¶

 /*±£´æÎļþ*/
 public void saveFile(String path,byte[] fileData)
 {
  try
  {
   FileConnection fc=(FileConnection)(Connector.open(path));
   fc.create();
   fc.setWritable(true);
   OutputStream os=fc.openOutputStream();
   os.write(fileData);
   os.close();
  }
  catch(Exception e)
  {
   System.out.println("saveFileErr:"+e.toString());
  }
 } 

fileDataÊÇÐèÒª±£´æµÄÎļþÄÚÈÝ£¬¿ÉÒÔÊÇÉùÒô£¬Ò²¿ÉÒÔÊÇͼÏñ£¬»òÕßÎÄ×ÖÖ®Àà

Èý.ɾ³ýÖ¸¶¨Îļþ

 /*ɾ³ýÎļþ*/
 public void deleteFile(String path)
 {
  try
  {
   FileConnection fc=(FileConnection)(Connector.open(path));
   if(fc.exists())
   fc.delete();
  }
  catch(Exception e)
  {
   System.out.println("deleteFileErr:"+e.toString());
  }
 }

Õâ¸ö·½·¨¾Í²»Óöà½âÊÍÁË

Ë