µ±Ç°Î»Ö㺠´úÂëÃÔ >> J2SE >> ΪʲôҪʹÓÃÄÚ²¿Àà½â¾ö·½°¸
  Ïêϸ½â¾ö·½°¸

ΪʲôҪʹÓÃÄÚ²¿Àà½â¾ö·½°¸

Èȶȣº111   ·¢²¼Ê±¼ä£º2016-04-24 12:30:23.0
ΪʲôҪʹÓÃÄÚ²¿Àà
RT
¿´ÓеÄÌᵽ˵ÊÇ
1.¡°¿ØÖÆ¿ò¼Ü¡±¡£
2.ÏñC++Ñù£¬ÊµÏÖ¡°±äÏࡱµÄ¶à¼Ì³Ð¡£
ºÜÃÔ»ó¡«

------½â¾ö·½°¸--------------------
1¡¢ÄÚ²¿Àà¿ÉÒÔ·ÃÎÊËüËùÔÚ×÷ÓÃÓòÄÚµÄÊý¾Ý£¬°üÀ¨Ë½ÓÐÊý¾Ý
2¡¢ÔÚͬһ¸ö°üÖУ¬ÄÚ²¿Àà¶ÔÓÚÆäËûÀ಻¿É¼û
3¡¢Ê¹ÓÃÄäÃûÄÚ²¿Àà¿ÉÒÔÔÚд»Øµ÷º¯Êýʱ£¬¼õÉÙ´úÂëÁ¿
------½â¾ö·½°¸--------------------
¿ÉÒԲο¼ÏÂÄÚ²¿ÀàµÄÌØÐÔ£º
ʵÀýÄÚ²¿Àà¿ÉÒÔÖ±½Ó·ÃÎÊǶÌ×ÀàµÄ³ÉÔ±¡£Èç¹ûÊǶ¨ÒåÔÚ·½·¨Öеľֲ¿ÄÚ²¿À࣬»¹¿ÉÒÔ·ÃÎʸ÷½·¨ÖеÄfinalÐ͵ľֲ¿±äÁ¿ºÍfinalÐ͵ķ½·¨²ÎÊý¡£
¾²Ì¬ÄÚ²¿ÀàÖ»ÄÜÖ±½Ó·ÃÎÊËùǶÌ×ÀàµÄ¾²Ì¬³ÉÔ±£¬¶ø²»ÄÜÖ±½Ó·ÃÎÊËùǶÌ×ÀàµÄ·Ç¾²Ì¬µÄ³ÉÔ±£¬Èç¹ûÒ»¶¨Òª·ÃÎÊ£¬±ØÐëͨ¹ýÍⲿǶÌ×ÀàµÄʵÀý·ÃÎÊ¡£
ʵÀýÄÚ²¿À಻ÄÜÉùÃ÷ÈκÎstatic³ÉÔ±£»¾²Ì¬ÄÚ²¿ÀàÖпÉÒÔÉùÃ÷static³ÉÔ±¡£

------½â¾ö·½°¸--------------------
1.ÓÐһЩÀàµÄ±äÁ¿£¬ËüֻϣÍû±»Ìض¨µÄÀà·ÃÎÊ£¬²»Ïë°Ñ±äÁ¿Éè³Épublic,¶øÄÚ²¿Àà¿ÉÒÔµ÷ÓÃÍⲿÀàµÄËùÓÐÐÅÏ¢£¬°üÀ¨Ë½Óеġ£
2.¶ÔÀàµÄ·â×°£¬Òþ²ØÄÚ²¿ÀàµÄ´úÂëʵÏÖ¡£Ö»ÓÐͨ¹ýÍⲿÀàµÃµ½Ïëµ½µÄÊý¾Ý¡£
ÎÒ¾ÍÖªµÀÕâÁ½¸ö¡£
------½â¾ö·½°¸--------------------
ºÃ´¦£º
1 ·½±ã¡£ÄÚ²¿Àà¿ÉÒÔ·ÃÎÊÍⲿÀàµÄËùÓÐÊôÐԺͷ½·¨£¨°üÀ¨privateµÄ£©
2 Òþ²Ø¡£±ãÓÚÒþ²ØijЩ¡°×¨ÓÃÀࡱ£¬Èçij¸ö½çÃæµÄ¼àÌýÆ÷À࣬»òijЩÈÝÆ÷µÄµ×²ãÊý¾Ý½á¹¹£¨ÈçHashMapÖеÄEntry£©¡£
ÕâЩÀàÖ»·þÎñÓÚij¸öÌض¨µÄÀ࣬²»ÐèÒªÍⲿµÄÈκÎÀàÖªµÀ¸ÃÐÅÏ¢¡£Òþ²ØÄܼõÉÙ²»±ØÒªµÄÐÅÏ¢Á¿¡£
3 ±ã½Ý¡£ÈçдSwing½çÃæµÄʼþ¼àÌý£¬Çý¶¯Ê±£¬¿É¼õÉÙÆäµ±×öÍⲿÀà±àдʱµÄºÜ¶à²ÎÊý´«µÝ¡£ÆäʵҲÊÇ·½±ã¡£
4 ЧÂÊ¡£¼õÉÙÁËÀàÓëÀàÖ®¼ä½»»¥£¬ÉÙ´´½¨ÁËһЩ¶ÔÏó¡£µ±È»£¬ÕâÖÖЧÂʵÄÌáÉýʱ΢²»×ãµÀµÄ£¬ÉõÖÁûÓÐÒ²ÊÇ¿ÉÄܵġ£
5 ijЩÇé¿öÏÂʹ³ÌÐò±äµÃÓÅÑÅ¡£

ÄÚ²¿ÀàÓкô¦£¬µ«Óë´Ë¶ÔÓ¦£¬È±µãòËƸü¶à¡£Ö»ÒËÔÚһЩÌØÊâµÄ³¡ºÏÓ¦Óá£
1 ÄÑÒÔÔĶÁ¡£ÀàÖл¹ÓÐÀ࣬¾ÍÏñ»³Ì¥µÄÅ®ÈË£¬ÄãÒ»ÑÛ¿´È¥£¬¸öÍ·ÓÐЩ´ó¡£±ãÖªµÀ´ËÖв»¼òµ¥¡£
2 ÀàÓëÀàÖ®¼äñîºÏ¶ÈºÜ¸ß£¬ÄÑÒÔÀ©Õ¹ºÍά»¤¡£
¹âÕâ2Ìõ£¬ÆäʵÒѹ»±»ÏÖ´úOO´óʦÃÇ´òÈëÀ乬ÁË¡£
µ«Ëü¼ÈÈ»´æÔÚ£¬¿Ï¶¨»¹ÊÇÓÐÆäÓ¦ÓüÛÖµµÄ¡£
³£Óõ½ÄÚ²¿ÀàµÄµØ·½£ºÐ¡ÐÍGUI³ÌÐòÀï¼àÌýÆ÷À࣬±È½ÏÆ÷£¨Comparator£©,ÈÝÆ÷µ×²ãרÓÃÊý¾Ý½á¹¹µÈµÈ¡£

ÄÚ²¿ÀàÊÇÒ»¸ö²»Ð¡µÄ»°Ìâ¡£¸ú¶àÐÅÏ¢Çëgoogle.
------½â¾ö·½°¸--------------------
´ó¼ÒÒѽӴ¥Á˶ÔÄÚ²¿ÀàµÄÔË×÷½øÐÐÃèÊöµÄ´óÁ¿Óï·¨Óë¸ÅÄî¡£µ«ÕâЩ²¢²»ÄÜÕæÕý˵Ã÷ÄÚ²¿Àà´æÔÚµÄÔ­Òò¡£ÎªÊ²Ã´SunÒªÈç´ËÂé·³µØÔÚJava 1.1ÀïÌí¼ÓÕâÑùµÄÒ»ÖÖ»ù±¾ÓïÑÔÌØÐÔÄØ£¿´ð°¸¾ÍÔÚÓÚÎÒÃÇÔÚÕâÀïҪѧϰµÄ¡°¿ØÖÆ¿ò¼Ü¡±¡£
¡¡¡¡
¡¡¡¡Ò»¸ö¡°Ó¦ÓóÌÐò¿ò¼Ü¡±ÊÇÖ¸Ò»¸ö»òһϵÁÐÀ࣬ËüÃÇרÃÅÉè¼ÆÓÃÀ´½â¾öÌض¨ÀàÐ͵ÄÎÊÌ⡣ΪӦÓÃÓ¦ÓóÌÐò¿ò¼Ü£¬ÎÒÃÇ¿É´ÓÒ»¸ö»ò¶à¸öÀà¼ÌÐø£¬²¢¸²¸ÇÆäÖеIJ¿·Ö·½·¨¡£ÎÒÃÇÔÚ¸²¸Ç·½·¨ÖбàдµÄ´úÂëÓÃÓÚ¶¨ÖÆÓÉÄÇЩӦÓóÌÐò¿ò¼ÜÌṩµÄ³£¹æ·½°¸£¬ÒÔ±ã½â¾ö×Ô¼ºµÄʵ¼ÊÎÊÌâ¡£¡°¿ØÖÆ¿ò¼Ü¡±ÊôÓÚÓ¦ÓóÌÐò¿ò¼ÜµÄÒ»ÖÖ·Ç·²ÀàÐÍ£¬Êܵ½¶ÔʼþÏìÓ¦µÄÐèÒªµÄÖ§Å䣻Ö÷ÒªÓÃÀ´ÏìӦʼþµÄÒ»¸öϵͳ½Ð×÷¡°ÓÉʼþÇý¶¯µÄϵͳ¡±¡£ÔÚÓ¦ÓóÌÐòÉè¼ÆÓïÑÔÖУ¬×îÖØÒªµÄÎÊÌâÖ®Ò»±ãÊÇ¡°Í¼ÐÎÓû§½çÃ桱£¨GUI£©£¬Ëü¼¸ºõÍêÈ«ÊÇÓÉʼþÇý¶¯µÄ¡£ÕýÈç´ó¼Ò»áÔÚµÚ13ÕÂѧϰµÄÄÇÑù£¬Java 1.1 AWTÊôÓÚÒ»ÖÖ¿ØÖÆ¿ò¼Ü£¬Ëüͨ¹ýÄÚ²¿ÀàÍêÃÀµØ½â¾öÁËGUIµÄÎÊÌâ¡£
¡¡¡¡
¡¡¡¡ÎªÀí½âÄÚ²¿ÀàÈçºÎ¼ò»¯¿ØÖÆ¿ò¼ÜµÄ´´½¨ÓëʹÓ㬿ÉÈÏΪһ¸ö¿ØÖÆ¿ò¼ÜµÄ¹¤×÷¾ÍÊÇÔÚʼþ¡°¾ÍÐ÷¡±ÒÔºóÖ´ÐÐËüÃÇ¡£¾¡¹Ü¡°¾ÍÐ÷¡±µÄÒâ˼ºÜ¶à£¬µ«ÔÚÄ¿Ç°ÕâÖÖÇé¿öÏ£¬ÎÒÃÇÈ´ÊÇÒÔ¼ÆËã»úʱÖÓΪ»ù´¡¡£Ëæºó£¬ÇëÊìϤµ½Õë¶Ô¿ØÖÆ¿ò¼ÜÐèÒª¿ØÖƵĶ«Î÷£¬¿ò¼ÜÄÚ²¢Î´°üº¬ÈκÎÌض¨µÄÐÅÏ¢¡£Ê×ÏÈ£¬ËüÊÇÒ»¸ö·Ç·²µÄ½Ó¿Ú£¬ÃèÊöÁËËùÓпØÖÆʼþ¡£Ëü¿ÉÒÔÊÇÒ»¸ö³éÏóÀ࣬¶ø·ÇÒ»¸öʵ¼ÊµÄ½Ó¿Ú¡£ÓÉÓÚĬÈÏÐÐΪÊǸù¾Ýʱ¼ä¿ØÖƵģ¬ËùÒÔ²¿·Öʵʩϸ½Ú¿ÉÄÜ°üÀ¨£º
¡¡¡¡
¡¡¡¡//: Event.java
¡¡¡¡// The common methods for any control event
¡¡¡¡package c07.controller;
¡¡¡¡
¡¡¡¡abstract public class Event {
¡¡¡¡¡¡private long evtTime;
¡¡¡¡¡¡public Event(long eventTime) {
¡¡¡¡¡¡¡¡evtTime = eventTime;
¡¡¡¡¡¡}
¡¡¡¡¡¡public boolean ready() {
¡¡¡¡¡¡¡¡return System.currentTimeMillis() >= evtTime;
¡¡¡¡¡¡}
¡¡¡¡¡¡abstract public void action();
¡¡¡¡¡¡abstract public String description();
¡¡¡¡} ///:~
¡¡¡¡
¡¡¡¡Ï£ÍûEvent£¨Ê¼þ£©ÔËÐеÄʱºò£¬¹¹½¨Æ÷¼´¼òµ¥µØ²¶×½Ê±¼ä¡£Í¬Ê±ready()¸æËßÎÒÃǺÎʱ¸ÃÔËÐÐËü¡£µ±È»£¬ready()Ò²¿ÉÒÔÔÚÒ»¸öÑÜÉúÀàÖб»¸²¸Ç£¬½«Ê¼þ½¨Á¢ÔÚ³ýʱ¼äÒÔÍâµÄÆäËû¶«Î÷ÉÏ¡£
¡¡¡¡
¡¡¡¡action()ÊÇʼþ¾ÍÐ÷ºóÐèÒªµ÷Óõķ½·¨£¬¶ødescription()ÌṩÁËÓëʼþÓйصÄÎÄ×ÖÐÅÏ¢¡£
¡¡¡¡
¡¡¡¡ÏÂÃæÕâ¸öÎļþ°üº¬ÁËʵ¼ÊµÄ¿ØÖÆ¿ò¼Ü£¬ÓÃÓÚÖÎÀíºÍ´¥·¢Ê¼þ¡£µÚÒ»¸öÀàʵ¼ÊÖ»ÊÇÒ»¸ö¡°ÖúÊÖ¡±À࣬ËüµÄÖ°ÔðÊÇÈÝÄÉEvent¶ÔÏ󡣿ÉÓÃÈκÎÊʵ±µÄ¼¯ºÏÌæ»»Ëü¡£¶øÇÒͨ¹ýµÚ8ÕµÄѧϰ£¬´ó¼Ò»áÖªµÀÁíһЩ¼¯ºÏ¿É¼ò»¯ÎÒÃǵŤ×÷£¬²»ÐèÒªÎÒÃDZàдÕâЩ¶îÍâµÄ´úÂ룺
¡¡¡¡
¡¡¡¡//: Controller.java
¡¡¡¡// Along with Event, the generic
¡¡¡¡// framework for all control systems:
¡¡¡¡package c07.controller;
¡¡¡¡
¡¡¡¡// This is just a way to hold Event objects.
¡¡¡¡class EventSet {
¡¡¡¡¡¡private Event[] events = new Event[100];
¡¡¡¡¡¡private int index = 0;
¡¡¡¡¡¡private int next = 0;
¡¡¡¡¡¡public void add(Event e) {
¡¡¡¡¡¡¡¡if(index >= events.length)
¡¡¡¡¡¡¡¡¡¡return; // (In real life, throw exception)
¡¡¡¡¡¡¡¡events[index++] = e;
¡¡¡¡¡¡}
¡¡¡¡¡¡public Event getNext() {
¡¡¡¡¡¡¡¡boolean looped = false;
¡¡¡¡¡¡¡¡int start = next;
¡¡¡¡¡¡¡¡do {
¡¡¡¡¡¡¡¡¡¡next = (next + 1) % events.length;
¡¡¡¡¡¡¡¡¡¡// See if it has looped to the beginning:
¡¡¡¡¡¡¡¡¡¡if(start == next) looped = true;
¡¡¡¡¡¡¡¡¡¡// If it loops past start, the list 
¡¡¡¡¡¡¡¡¡¡// is empty:
¡¡¡¡¡¡¡¡¡¡if((next == (start + 1) % events.length)
¡¡¡¡¡¡¡¡¡¡¡¡ && looped)
¡¡¡¡¡¡¡¡¡¡¡¡return null;
¡¡¡¡¡¡¡¡} while(events[next] == null);
¡¡¡¡¡¡¡¡return events[next];
¡¡¡¡¡¡}
¡¡¡¡¡¡public void removeCurrent() {
¡¡¡¡¡¡¡¡events[next] = null;
¡¡¡¡¡¡}
¡¡¡¡}
¡¡¡¡
¡¡¡¡public class Controller {
  Ïà¹Ø½â¾ö·½°¸