锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲日产2021三区在线,亚洲精品中文字幕乱码影院,亚洲精品网站在线观看不卡无广告http://m.tkk7.com/jiangquan/zh-cnMon, 12 May 2025 14:47:08 GMTMon, 12 May 2025 14:47:08 GMT60JAVA璇硶澶嶄範http://m.tkk7.com/jiangquan/archive/2013/01/13/394146.htmlDolveVitaDolveVitaSun, 13 Jan 2013 01:29:00 GMThttp://m.tkk7.com/jiangquan/archive/2013/01/13/394146.htmlhttp://m.tkk7.com/jiangquan/comments/394146.htmlhttp://m.tkk7.com/jiangquan/archive/2013/01/13/394146.html#Feedback0http://m.tkk7.com/jiangquan/comments/commentRss/394146.htmlhttp://m.tkk7.com/jiangquan/services/trackbacks/394146.html宸ヤ綔鍘熺悊
1錛夌紪鍐?java鏂囨湰鏂囦歡錛?br />2錛夐氳繃緙栬瘧鍣ㄧ紪璇戜負.class浜岃繘鍒舵枃浠訛紱
3錛変嬌鐢↗AVA铏氭嫙鏈烘墽琛?class鏂囦歡錛屼笉鍚屽鉤鍙板搴斾笉鍚岃櫄鎷熸満錛?br />System.exit錛歮ain鏂規硶緇撴潫涓嶇瓑浜庢暣涓▼搴忕殑鐪熸緇撴潫錛屽彲鑳借繕鏈夌嚎紼嬪湪榪愯鐫錛岃皟鐢⊿ystem.exit()鎵嶈揪鍒扮▼搴忕殑鐪熸緇撴潫銆?/p>


闈㈠悜瀵硅薄鍘熺悊
鍗曠戶鎵匡紝澶氭帴鍙e疄鐜幫紱涓鑸紝緇ф壙涓昏鐢ㄥ湪涓涓郴鍒楃殑瀵硅薄鎶借薄錛涙帴鍙d富瑕侀拡瀵瑰姛鑳界殑鎶借薄錛?br />JAVA璇█涓紝騫墮潪鎵鏈夌殑鍙橀噺閮芥槸瀵硅薄錛屽熀鏈殑鏁板肩被鍨嬶紙char,short,int,long,float,double,boolean錛夐櫎澶栵紝鍙兘鏄負浜嗚繍琛岄熷害錛岀紪璇戝櫒娌℃湁灝嗚繖浜涚被鍨嬬紪璇戜負瀵硅薄錛?br />瀵硅薄Object鏄墍鏈夊璞$殑紲栧畻錛?br />瀵硅薄Class淇濆瓨涓涓璞$殑綾誨瀷淇℃伅錛屼篃鍙互鏄熀鏈殑鏁板肩被鍨嬶紱


鏁版嵁綾誨瀷
int         4B
short       2B
long        8B
byte        1B
float       4B (鍚庣紑f,F)
double      8B (鍚庣紑d,D)
char        2B
boolean     1B
鍓嶇紑錛?br />0x錛氬崄鍏繘鍒?(鎸囨暟鐢╬錛屽崄榪涘埗鐢╡)
0錛氬叓榪涘埗


鍙橀噺鍛藉悕
瀛楁瘝(a-zA-Z)銆佷笅鍒掔嚎(_)寮澶達紝鍚庣畫瀛楁瘝鍙互鏄瓧姣嶃佹暟瀛椼佷笅鍒掔嚎錛屼笉鑳芥槸鍏抽敭瀛楁垨鑰呬繚鐣欏瓧銆?/p>


鍏抽敭瀛?/strong>
abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, final, finally, float, for, goto, if,

implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, strictfp, super, switch,

synchronized, this, throw, throws, transient, try, void, volatile, while
鍏朵腑錛宑onst鍜実oto鏄繚鐣欏叧閿瓧銆?/p>


娉ㄩ噴
//琛屾敞閲?/p>


榪愮畻絎?br />綆楁湳榪愮畻錛?銆?銆?銆?銆?錛?+銆?-銆?=銆?=錛?br />鍏崇郴榪愮畻錛?gt;銆?lt;銆?=銆?gt;=銆?lt;=銆?=銆?銆?amp;&銆亅|錛?br />浣嶈繍綆楋細&銆亅銆乛銆亊銆?gt;>銆?gt;>>銆?lt;<銆?lt;<<錛?/p>


嫻佺▼鎺у埗
if ... else ...
(...) ? ... : ...;
switch  鍙兘鎺ュ彈byte銆乻hort銆乧har銆乮nt鍥涚錛屼笉鑳芥帴鍙條ong綾誨瀷銆?br />for
for each
while
do...while


鍙傛暟浼犻?br />鍩烘湰鏁版嵁綾誨瀷鎸夌収鍊間紶閫掞紝瀵硅薄鎸夌収寮曠敤浼犻掞紱String瀵硅薄娌℃湁淇敼璇ュ璞$殑鏂規硶錛屽鏋滆閫氳繃寮曠敤淇敼鍙互浣跨敤StringBuilder鎴朣tringBuffer錛?/p>


闈㈠悜瀵硅薄
綾誨姞杞斤細static瀛楁銆佷竴鑸瓧孌點佹瀯閫犲嚱鏁板瓧孌碉紱錛堟敞鎰忥細static鎴愬憳鏄被鍔犺澆鍣ㄥ姞杞界殑錛屾槸綰跨▼瀹夊叏鐨勶紱錛?br />緇ф壙錛?br />鎺ュ彛錛?br />鍐呴儴綾匯佸尶鍚嶅唴閮ㄧ被鐢ㄩ旓細浣跨敤涓涓璞″幓鍋氫換鍔″鐞嗭紝浣嗘槸璇ュ璞′互鍚庝篃涓嶉渶瑕佺敤鍒幫紱榪欐牱鍦ㄤ竴涓被A鍐呴儴瀹氫箟涓涓唴閮ㄧ被B錛岃繖鏍風被B鍙互璁塊棶綾籄鐨勬暟鎹紝澶栫晫騫朵笉鐭ラ亾鏈夌被B鐨勫瓨鍦紱
寮傚父緇ф壙鏃跺欙紝鐖剁被涓庡瓙綾葷殑寮傚父澹版槑鍙互涓嶅悓錛屼絾鏄瓙綾葷殑寮傚父蹇呴』鍦ㄧ埗綾葷殑寮傚父鑼冨洿涔嬪唴錛屼篃灝辨槸鐖剁被鐨勫紓甯稿繀欏誨彲浠ュ紩鐢ㄥ瓙綾葷殑寮傚父錛?br />鏂規硶緇ф壙鏃跺欙紝濡傛灉闇瑕佽鐩栵紝鏂規硶鍚嶇О銆佸艦鍙傜被鍨嬨佽繑鍥炵被鍨嬪繀欏葷浉鍚岋紱


璁塊棶淇グ絎?/strong>
           褰撳墠瀵硅薄    鍚屼竴涓寘涓瓙綾?闈炲瓙綾?nbsp;    鍏跺畠鍖呬腑瀛愮被/闈炲瓙綾?br />private    yes         no/no                     no/no
protected  yes         yes/yes                   yes/no
榛樿       yes         yes/yes                   no/no
public     yes         yes/yes                   yes/yes


瀵硅薄姣旇緝
浣跨敤==姣旇緝鐨勬槸寮曠敤錛涗嬌鐢╡quals榛樿姣旇緝鐨勪篃鏄璞$殑寮曠敤錛屼絾鏄紝緇忚繃閲嶈澆鐨別quals鍙互鎸夌収鎴戜滑闇瑕佸幓姣旇緝鐗圭偣瀛楁錛?br />String綾婚噸杞戒簡equals涓巋ashCode錛岃孲tringBuilder涓嶴tringBuffer娌℃湁緇忚繃閲嶈澆錛屽洜姝や嬌鐢╡quals姣旇緝StringBuilder涓嶴tringBuffer瀹為檯姣旇緝鐨勬槸寮曠敤錛?br />娉ㄦ剰錛氶噸杞絜quals蹇呴』鍚屾椂閲嶈澆hashCode錛岃繖涓や釜鏂規硶蹇呴』淇濇寔鍚屾錛屽嵆equals涓巋ashCode鍚岀湡鍋囷紱


瀵硅薄搴忓垪鍖?br />緇ф壙鎺ュ彛Serializable鍗沖彲浠ュ疄鐜板璞″簭鍒楀寲錛岄粯璁ゆ槸搴忓垪鍖栦笌鍙嶅簭鍒楀寲鐨勭粨鏋滄槸鐩稿悓鐨勶紙寮曠敤琚簭鍒楀寲鍚庡啀鍙嶅簭鍒楀寲鍥炴潵榪樻槸璺熶箣鍓嶇浉鍚岀殑錛夛紱
涓鑸簭鍒楀寲鍚庯紝瑕佸畾涔夊瓧孌祍erialVersionUID錛宔clipse鑷姩鍙互鐢熸垚錛涗綔鐢ㄦ槸淇濇寔搴忓垪鍖栦笌鍙嶅簭鍒楀寲鏃跺欑殑鐗堟湰鍏煎錛屽鏋滀笉瀹氫箟璇ュ瓧孌碉紝褰撳嚭鐜板弽搴忓垪鍖栨椂鍊欏唴瀹逛笉鍚屾椂錛屽彲鑳戒細鎶ラ敊錛?br />transient鍏抽敭瀛楀彲浠ヤ嬌璇ュ瓧孌典笉榪涜搴忓垪鍖栵紱


瀵硅薄鍏嬮殕
緇ф壙鎺ュ彛Cloneable錛岀劧鍚庤鐩朞bject綾葷殑clone()鏂規硶榪涜鍏嬮殕鐨勫0鏄庯紱榛樿鏄祬鎷瘋礉錛岃嫢瀛楁鏄紩鐢ㄧ被鍨嬶紝鍒欓渶瑕佹墜鍔ㄥ湪clone()鏂規硶閲岄潰浜哄伐榪涜new涓涓璞★紱
鏁扮粍榛樿鏀寔鍏嬮殕錛屼絾鏄暟緇勭殑鏁扮粍錛堜簩緇存暟緇勪互涓婏級涓嶆敮鎸佺洿鎺ヤ嬌鐢ㄥ厠闅嗭紱


寮傚父
寮傚父鐨勭粨鏋?br />Throwable
        |
    Error  Exception
                            |
               IOException絳?nbsp; RuntimeException

寮傚父鐨勫垎綾?br />1錛夋湭媯鏌ュ紓甯?br />RuntimeException鍜孍rror鍙婂叾瀛愮被銆?br />榪欑被寮傚父涓嶉渶瑕佹樉寮忔崟鎹夛紝涓鏃﹀彂鐢燂紝瀹冭嚜鍔ㄤ細鎶涘嚭鏉ワ紝鐒跺悗紼嬪簭緇堟錛涘綋鐒訛紝浣犱篃鍙互榪涜鎹曟崏錛岃繖鏍風▼搴忓氨鍙互緇х畫榪愯錛?br />2錛夊凡媯鏌ュ紓甯?br />Exception鍙婂叾瀛愮被
鐢變簬Exception媧劇敓鐨勫瓙綾誨強Exception綾誨鏄凡媯鏌ュ紓甯革紝鎵浠ワ紝Throwable綾諱篃灞炰簬宸叉鏌ュ紓甯革紱榪欑被寮傚父蹇呴』榪涜鎹曟崏錛屽惁鍒欑紪璇戜笉鑳介氳繃銆?/p>

澹版槑宸叉鏌ュ紓甯?br />渚嬶細public FileInputStream(String name) throws FileNotFoundException

鎶涘嚭宸叉鏌ュ紓甯?br />渚嬶細throw new Exception("message");

鎹曡幏寮傚父
濡傛灉涓嶆崟鑾風殑璇濓紝紼嬪簭灝變細緇堟銆傛湁浜涙椂鍊欙紝鍑虹幇浜嗗紓甯革紝浣嗘槸錛屾垜浠笉闇瑕佺粓姝㈢▼搴忥紝閭d箞灝遍渶瑕佹崟鑾峰紓甯搞?br />try {
    // 鍙兘鎶涘嚭寮傚父鐨勪唬鐮?br />} catch(寮傚父綾誨瀷 e) {
    // e.printStackTrace(); // 鎵撳嵃寮傚父鍫嗘爤
    // 澶勭悊
}
// catch璇彞鏄粠涓婂埌涓嬫墽琛岀殑錛屽叿浣撶殑寮傚父搴旇鏀懼湪涓婇潰錛?/p>

浼犻掑紓甯?br />灝嗗紓甯鎬紶閫掍笅鍘伙紝榪欐牱鎵嶈兘涓嶄細琚鐩栵紱
try {
    // access the database
} catch(SQLException e) {
    throw new ServletException("database error.", e);
}

finally瀛愬彞
finally瀛愬彞鏄竴瀹氫細鎵ц鐨勶紝璇ュ瓙鍙ヤ富瑕佺敤浜庡洖鏀朵竴浜涜祫婧愩?/p>


娉涘瀷錛堝睘浜庡簳灞備唬鐮侊紝涓嶅父鐢級
JAVA铏氭嫙鏈轟腑娌℃湁娉涘瀷錛屽彧鏈夋櫘閫氱被涓庢柟娉曪紝浣跨敤娉涘瀷涓昏鏄負浜嗘柟渚跨被鍨嬭漿鎹紱榪樻湁娉涘瀷鍙互闄愬畾瀵硅薄寮曠敤鐨勪嬌鐢紱鎵鏈夛紝娉涘瀷浜嗚В浣跨敤鍗沖彲錛屼笉闇瑕佹繁絀訛紱
娉涘瀷鍖呭惈涓ょ錛氭硾鍨嬬被銆佹硾鍨嬫柟娉曪紱娉涘瀷綾諱富瑕佺敤浜庡鏌愪釜涓嶇‘瀹氱被鍨嬬殑瀛楁榪涜鎿嶄綔錛涙硾鍨嬫柟娉曟槸鎸噑tatic鏂規硶涓嬌鐢ㄤ簡娉涘瀷鍙傛暟錛?/p>

娉涘瀷鐨勭炕璇?br />緲昏瘧娉涘瀷琛ㄨ揪寮?br />A a = new A();
a.setT("generic programming.");
String str = a.getT(); // 緲昏瘧涓猴細String str = (String) a.getT();
緲昏瘧娉涘瀷鏂規硶
public static T getMiddle(T[] a) // 緲昏瘧涓猴細public static Object getMiddle(Object[] objects)
public static   T getMiddle(T[] a) // 緲昏瘧涓猴細public static Comparable getMiddle(Comparable[] a)
// 榛樿鏄漿鍖栦負宸﹁竟絎竴涓被鍨嬶紝鎵鏈夊敖閲忓皢鑼冨洿澶х殑綾誨瀷鏀懼埌鍓嶉潰錛?br />澶嶆潅涓鐐圭殑妗ユ柟娉曪細
class A {
 
 private T t;
 
 public void setT(T t) {
  this.t = t;
 }
 public T getT() {
  return t;
 }
}
class B extends A {

 

 public void setT(String t) {
  super.setT(t);
 }
}

// 緲昏瘧鍚庯細
class A { // 鐖剁被緲昏瘧鍚庤偗瀹氭槸Object
    private Object t;
  
    public void setT(Object object) {
 t = object;
    }
  
    public Object getT() {
 return t;
    }
}
class B extends A {
    public void setT(String string) { // 瀛愮被鑲畾瀹冪殑鐖剁被鏄疭tring
 super.setT(string);
    }
  
    public volatile void setT(Object object) { // 妗ユ柟娉曪紝澶栫晫榪樻槸璁や負鏄疧bject
 setT((String) object);
    }
}
// 璋冪敤錛?br />A a = new B();
a.setT("generic programming."); // 緲昏瘧涓猴細b.setT((Object) "generic programming.");

涓嶈兘浣跨敤娉涘瀷鐨勬儏鍐?br />涓嶈兘浣跨敤娉涘瀷緇ф壙寮傚父銆?br />渚嬪錛歱ublic class Problem extends Exception {...}銆?br />涓嶈兘鍦╟atch(...)涓紝浣跨敤catch(T t)銆?br />寮傚父澹版槑涓彲浠ヤ嬌鐢ㄦ硾鍨嬨?br />渚嬪錛歱ublic static void doWork(T t) throws T {...}銆?/p>

涓嶈兘鐢ㄦ硾鍨嬫暟緇?br />A[] arr = new A[5]; // 鎿﹂櫎鍚庝負錛欰[] arr = new A[5];

涓嶈兘灝嗘硾鍨嬬被鍨嬪疄渚嬪寲銆?br />class A {
 a = new T(); // 鎿﹂櫎鍚庢槸a = new Object();鎴戜滑鏈剰鍗翠笉鏄繖涓?br /> ...
}

綾葷殑闈欐佸瓧孌典笉鑳戒嬌鐢ㄦ硾鍨嬶紱

褰撴硾鍨嬬被鍨嬫摝闄ゅ悗錛屽垱寤烘潯浠朵笉鑳戒駭鍑哄啿紿併?br />渚嬪錛歱ublic boolean equals(T t) {...}

 

綾誨瀷闄愬畾
瀛愮被鍨嬮檺瀹?lt;? extends Employee>錛屽彲浠ヨ錛屼笉鑳藉啓銆?br />Pair<? extends Employee> pair1 = null; // ?鏄疎mployee鐨勫瓙綾伙紝瀛愮被鍙兘寰堝錛屼笉紜畾鏈夊嚑涓?br />Pair<Manager> pair2 = new Pair<Manager>();
pair1 = pair2;
pair1.getFirst(); // 鎿嶄綔鎴愬姛錛屽洜涓烘槸“(? extends Employee) pair1.getFirst();”錛?br />  // 鐩稿綋浜庢槸“(Employee) pair1.getFirst();”銆?br />pair1.setFirst(new Manager()); // 緙栬瘧閫氫笉榪囷紝鍥犱負鏄?#8220;pair1.setFirst(? extends Employee);”
  // 鐩稿綋浜庢槸“pair1.setFirst(?);” 涓嶇‘瀹氱殑綾誨瀷銆?/p>

瓚呯被鍨嬮檺瀹?lt;? super Employee>錛屽彲浠ュ啓錛屼笉鑳借錛涘垰濂藉拰涓婇潰鐩稿弽銆?/p>

鏃犻檺瀹氶氶厤絎?lt;?>錛屽彲浠ヨ錛屼笉鑳藉啓錛涜鐨勬椂鍊欑洿鎺ヨ漿鍨嬩負Object銆?/p>


鍙嶅皠錛堝睘浜庡簳灞備唬鐮侊紝涓嶅父鐢級
瀵硅薄浜х敓浜庣被錛岃屽湪JAVA铏氭嫙鏈洪噷闈㈣繕淇濆瓨鐫瀵圭被鐨勬弿榪幫紝榪欎釜鎻忚堪鏄竴涓狢lass鐨勫璞★紱綾諱俊鎭鍔犺澆鍒拌櫄鎷熸満錛屽氨浼氫駭鐢熶竴涓狢lass瀵硅薄錛岀敤浠ユ弿榪拌繖涓被鐨勪俊鎭紱
閫氳繃榪欎釜Class瀵硅薄鍙互瑙f瀽綾葷殑緇撴瀯錛岃繖涓狢lass瀵硅薄鍙互浠庣被淇℃伅鏉ワ紙渚嬪錛欵mployee.class錛夛紝涔熷彲浠ヤ粠瀵硅薄鏉ワ紙渚嬪錛歟mp.getClass()錛夛紱
閫氳繃榪欎釜Class瀵硅薄鍙互寮曠敤鍏蜂綋瀵硅薄鐨勫瓧孌點佹柟娉曘佹瀯閫犲櫒錛屽彲浠ュ畬鍏ㄦ搷浣滀竴涓璞★紱
.class: 搴旇鏄竴涓寚鍚戠被鐨凜lass瀵硅薄鐨勬寚閽堛?br />forName(): 浼氳皟鐢ㄥ綋鍓嶇嚎紼嬫墍鍦ㄧ殑ClassLoader鏉ヨ杞戒竴涓被鐨凜lass瀹炰緥銆?br />娉ㄦ剰錛氬熀紜綾誨瀷涔熷彲浠ヨ繖鏍蜂嬌鐢?#8220;int.class”錛?/p>


綾誨姞杞藉櫒錛堝睘浜庡簳灞備唬鐮侊紝涓嶅父鐢級
java涓殑綾繪槸鍔ㄦ佸姞杞界殑錛屽嵆寮曠敤鍒頒簡鎵嶄細琚姞杞斤紱
// 涓夌鍔犺澆鏂瑰紡紺轟緥
class A{}
class B{}
class C{}
public class Loader{
    public static void main(String[] args) throws Exception{
       Class aa=A.class;
       Class bb=Class.forName("B");
       Class cc=ClassLoader.getSystemClassLoader().loadClass("C");
    }
}

緋葷粺鍐呴粯璁ょ殑綾誨姞杞藉櫒
Bootstrap ClassLoader (鍔犺澆rt.jar)
 |
 ExtClassLoader (鍔犺澆jre/lib/ext/)
  |
  AppClassLoader (鍔犺澆claspath)

//ClassLoader瀹炵幇錛氭煡鎵劇被錛屼粠鐖跺姞杞藉櫒鍚戜笂閬嶅巻錛屾壘涓嶅埌灝辮皟鐢ㄥ綋鍓嶈嚜瀹氫箟鐨勫姞杞藉櫒錛?br />protected ClassLoader() {
 SecurityManager security = System.getSecurityManager();
 if (security != null) {
     security.checkCreateClassLoader();
 }
 // 鑷繁瀹炵幇鐨勭被鍔犺澆鍣紝榛樿鏄敤緋葷粺綾誨姞杞藉櫒鐨勩?br /> this.parent = getSystemClassLoader();
 initialized = true;
}

protected ClassLoader(ClassLoader parent) {
 SecurityManager security = System.getSecurityManager();
 if (security != null) {
     security.checkCreateClassLoader();
 }
 // 浼犲叆涓涓埗鍔犺澆鍣?br /> // 濡傛灉parent=null錛岄偅涔堝惎鍔ㄧ被鍔犺澆鍣ㄥ氨鏄埗浜層?br /> this.parent = parent;
 initialized = true;
}
 
// 鍙屼翰濮旀淳鍔犺澆鐨勫疄鐜?br />public Class<?> loadClass(String name) throws ClassNotFoundException {
 return loadClass(name, false);
}

protected synchronized Class<?> loadClass(String name, boolean resolve)
 throws ClassNotFoundException {
 // 鍏堟鏌ヨ綾繪槸鍚﹀凡緇忚瑁呰澆榪?br /> Class c = findLoadedClass(name);
 if (c == null) {
     try {
   // 鍚戠埗鍔犺澆鍣ㄥ鎵橈紙鍔犺澆涓嶅埌鎶汣lassNotFoundException錛?br />   if (parent != null) {
       c = parent.loadClass(name, false);
      
      // 鏈緇堝埌鍚姩綾誨姞杞藉櫒錛堝姞杞戒笉鍒版姏ClassNotFoundException錛?br />   } else {
       c = findBootstrapClass0(name);
   }
     } catch (ClassNotFoundException e) {
         // 鐖跺姞杞藉櫒鍔犺澆涓嶅埌錛岃皟鐢ㄦ垜浠嚜宸辮瀹氱殑findClass(name)榪涜鏌ユ壘
         // 瀵逛簬API鎻愪緵鐨凜lassLoader錛宖indClass()鏄洿鎺ユ姏ClassNotFoundException
         c = findClass(name);
     }
 }
 // 鏄惁瑕佽В鏋愶紙瑙f瀽絎﹀彿寮曠敤涓虹洿鎺ュ湴鍧寮曠敤錛?br /> // 涓鑸垜浠敤false銆?br /> // 鎴戠殑鐞嗚В鏄嬌鐢╢alse鐨勮瘽錛岀▼搴忓惎鍔ㄩ熷害搴旇浼氭湁涓鐐圭偣鎻愬崌錛屼絾鏄涓嬈℃墽琛岀殑鏃跺欏簲璇ヤ細鎱竴鐐圭偣銆?br /> // 褰撶劧錛岃繖涓垜浠漢鏄劅瑙変笉鍑烘潵鐨勩?br /> if (resolve) {
     resolveClass(c);
 }
 return c;
}



=====
from
http://blog.sina.com.cn/s/blog_667ac0360102e8ii.html

DolveVita 2013-01-13 09:29 鍙戣〃璇勮
]]>
Java鐨凷ystemTray綾葷殑浣跨敤鏂規硶http://m.tkk7.com/jiangquan/archive/2013/01/13/394145.htmlDolveVitaDolveVitaSun, 13 Jan 2013 01:27:00 GMThttp://m.tkk7.com/jiangquan/archive/2013/01/13/394145.htmlhttp://m.tkk7.com/jiangquan/comments/394145.htmlhttp://m.tkk7.com/jiangquan/archive/2013/01/13/394145.html#Feedback0http://m.tkk7.com/jiangquan/comments/commentRss/394145.htmlhttp://m.tkk7.com/jiangquan/services/trackbacks/394145.htmlJava鐨凷ystemTray綾葷殑浣跨敤鏂規硶

JDK1.6鐗堝鍔犱簡java.awt.SystemTray綾伙紝璇ョ被琛ㄧず妗岄潰鐨勭郴緇熸墭鐩橈紝榪欏澶у鏁扮郴緇熸墭鐩樺簲鐢ㄥ凡緇忚凍澶熴傚鏋滆繖涓被榪樻槸涓嶈兘婊¤凍鎮ㄧ殑闇姹傦紝鍙互璇曚竴璇旿DIC 錛圝Desktop Integration Components錛夈?br />JDK1.6鐨凙PI鏂囨。錛岀粰鍑轟簡榪欎釜綾葷殑鐢ㄦ硶銆傛湁浜烘効鎰忔妸鍒涘緩緋葷粺鎵樼洏鐨勪唬鐮佺洿鎺ユ斁鍦ㄤ富搴旂敤浠g爜涓紝絎旇呮洿鍊懼悜浜庢妸鍒涘緩緋葷粺鎵樼洏鐨勮矗浠誨垎媧劇粰涓涓崟鐙殑綾伙紝榪欑鍚堢被鐨勮璁″師鍒欍傚湪涓誨簲鐢ㄤ腑鐩存帴璋冪敤璇ョ被鐨勫伐鍘傛柟娉曞氨鍙互浜嗭紝緇撴瀯娓呮櫚錛屼究浜庣淮鎶わ紝鏀瑰姩鎴栧鍔犵郴緇熸墭鐩樼殑鍔熻兘錛屼笉蹇呮敼鍔ㄤ富搴旂敤浠g爜銆?br />鍒涘緩緋葷粺鎵樼洏鐨勭被(TrayFactory.java)鐨勪唬鐮佸涓嬶細

//package com.jnmc.liang.systemtray;

import java.awt.*;
import java.awt.event.*;

public class TrayFactory {
        private TrayIcon trayIcon = null;
        private Component comp = null;
        private String trayImageName = null;
        private String tooltip = null;
        
        private TrayFactory(Component comp, String trayImageName, String tooltip) {
                this.comp = comp;
                this.trayImageName = trayImageName;
                this.tooltip = tooltip;
                
                init();
        }
        
        private void init() {
                if (SystemTray.isSupported()) {
                        SystemTray tray = SystemTray.getSystemTray();
                        Image image  = Toolkit.getDefaultToolkit().getImage(trayImageName);
                        PopupMenu popupMenu = new PopupMenu();
                        MenuItem restoreItem = new MenuItem("榪樺師"); 
                        MenuItem exitItem  = new MenuItem("閫鍑?);
                        
                        restoreItem.addActionListener(new RestoreItemActionListener());                        
                        exitItem.addActionListener(new ExitItemActionListener());
                        
                        popupMenu.add(restoreItem);
                        popupMenu.addSeparator();
                        popupMenu.add(exitItem);
                        
                        trayIcon = new TrayIcon(image, tooltip,  popupMenu);
                        trayIcon.addMouseListener(new TrayIconMouseListener());
                        //trayIcon.addActionListener(new TrayIconActionListener());
                                                
                        try {
                                tray.add(trayIcon);
                        }
                        catch (AWTException e) {
                                System.err.println(e);
                        }
                }
                else {
                        //..........
                }
        }

        private class RestoreItemActionListener implements ActionListener {
                public void actionPerformed(ActionEvent ae) {
                        comp.setVisible(true);
                }
        }
                
        private class ExitItemActionListener implements ActionListener {
                public void actionPerformed(ActionEvent ae) {
                        System.exit(0);
                }
        }
        
        private class TrayIconMouseListener extends MouseAdapter {
                public void mousePressed(MouseEvent me) {
                        if (me.getButton() == MouseEvent.BUTTON1) {
                                comp.setVisible(true);
                        }
                }
        }

        public static void createTray(Component comp, String trayImageName, String tooltip) {
                new TrayFactory(comp, trayImageName, tooltip);
        }
}

榪欎釜綾葷殑鏋勯犳柟娉曟槸private鐨勶紝鍥犱負鍒涘緩璇ョ被鐨勫疄渚嬩笉鏄垜浠殑鐩殑錛屽彟涓鏂歸潰鏄負浜嗘柟渚跨郴緇熸墭鐩樼殑鍒涘緩銆?br />鏋勯犳柟娉曟湁3涓弬鏁幫細
絎?涓弬鏁版槸涓涓狢omponent錛岃繖灝辨槸鎮ㄦ墍瑕佹樉紺烘垨闅愯棌鐨勪富紿椾綋銆傚綋鐒訛紝鎮ㄦ妸榪欎釜鍙傛暟鍐欐垚Component鐨勫瓙綾諱篃鏃犲Θ錛岃繖閲屾槸涓轟簡澧炲姞綾葷殑閫氱敤鎬с?br />絎?涓弬鏁版槸涓涓猄tring錛屽畠鏄竴涓猧mage鏂囦歡鐨勫悕縐幫紝灝嗘潵鐢ㄨ繖涓枃浠跺垱寤烘墭鐩樺浘鏍嘥rayIcon銆?br />絎?涓弬鏁頒篃鏄竴涓猄tring錛屽畠鏄伐鍏鋒彁紺哄瓧絎︿覆錛屽綋鎮ㄦ妸榧犳爣鏀懼埌鎵樼洏鍥炬爣涓婄殑鏃跺欙紝鎵樼洏鍥炬爣灝嗗脊鍑鴻繖涓瓧絎︿覆鐨勫唴瀹廣?br />鍒涘緩緋葷粺鎵樼洏鐨勫叿浣撲唬鐮佸湪鏂規硶private void init()涓?br />鍒涘緩緋葷粺鎵樼洏鐨勪換鍔″垎涓轟袱涓楠わ細
棣栧厛鍒涘緩鎵樼洏鍥炬爣錛圱rayIcon錛夛紝鍏舵鎶婃墭鐩樺浘鏍囨坊鍔犲埌緋葷粺鎵樼洏(SystemTray)涓?br />Java.awt.TrayIcon鎻愪緵3縐嶆瀯閫犳柟娉曞垱寤篢rayIcon瀹炰緥錛岃繖閲岄噰鐢ㄧ涓夌鏋勯犳柟娉曪細
                trayIcon = new TrayIcon(image, tooltip,  popupMenu);
鍏朵腑錛宨mage瀵硅薄鐢盩rayFactory綾繪瀯閫犳柟娉曠殑絎簩涓弬鏁皌rayImageName鍒涘緩錛?br />Image image  = Toolkit.getDefaultToolkit().getImage(trayImageName);
tooltip灝辨槸TrayFactory綾繪瀯閫犳柟娉曠殑絎笁涓弬鏁?br />鐢變簬涓嶈兘鏈濆墠寮曠敤錛孭opupMenu瀵硅薄popupMenu蹇呴』鍦ㄥ垱寤簍rayIcon瀵硅薄涔嬪墠鍒涘緩錛屽茍緇檖opup鑿滃崟欏規坊鍔犲姩浣滅洃鍚櫒鏉ュ鐞嗚彍鍗曢」鐨勫姩浣滐紙鐐瑰嚮錛変簨浠訛紝鐢變簬澶勭悊鍔ㄤ綔浜嬩歡姣旇緝綆鍗曪紝榪欓噷涓嶅仛鍏蜂綋鍒嗘瀽錛屽彧瀵筎rayIcon鐨勯紶鏍囦簨浠跺仛鍑鴻鏄庛?br />鎴戜滑甯屾湜鍦ㄦ墭鐩樺浘鏍囦笂鎸変笅榧犳爣宸﹂敭鏃舵樉紺轟富紿椾綋錛屾墍浠ュ繀欏誨鐞嗘墭鐩樺浘鏍囩殑榧犳爣鎸変笅浜嬩歡銆傛垜浠敤TrayIconMouseListener縐佹湁鍐呴儴綾伙紙private inner class錛夋潵澶勭悊榧犳爣鎸変笅浜嬩歡銆備笉璁烘寜涓嬮紶鏍囧乏閿繕鏄彸閿紝閮戒細浜х敓榧犳爣浜嬩歡錛岄兘浼氬紩璧穖ousePressed鏂規硶鐨勮皟鐢紝鎵浠ュ湪榪欎釜鏂規硶涓彧澶勭悊宸﹂敭鑰屽拷鐣ュ彸閿紝鎶婂彸閿暀緇檖opup鑿滃崟錛?br />                        if (me.getButton() == MouseEvent.BUTTON1) {
                                comp.setVisible(true);
                        }
榪欐椂錛屽氨鍙互緇檌nit()鏂規硶涓垱寤虹殑TrayIcon瀵硅薄trayIcon娣誨姞榧犳爣鐩戝惉鍣ㄤ簡錛?br />trayIcon.addMouseListener(new TrayIconMouseListener());
鍒╃敤TrayFactory綾誨涓誨簲鐢ㄥ垱寤虹郴緇熸墭鐩樻椂錛屽彧闇鍦ㄤ富搴旂敤涓皟鐢ㄨ綾葷殑宸ュ巶鏂規硶鍗沖彲錛?br />TrayFactory.createTray(comp, trayImageName, tooltip);
娉ㄦ剰榪欎竴鍙ワ紝涓瀹氳鏀懼湪閫傚綋鐨勪綅緗細涓誨簲鐢ㄤ粠寮濮嬪惎鍔ㄥ埌鍚姩瀹屾瘯錛屽繀欏繪湁鏈轟細鎵ц榪欎竴鍙ャ傛墍浠ュ緩璁妸榪欎竴鍙ユ斁鍦ㄤ富搴旂敤鐨勬瀯閫犳柟娉曚腑錛屾垨鑰呭共鑴嗘斁鍦ㄦ樉紺轟富紿椾綋鐨勫墠涓涓鍙ョ殑浣嶇疆錛?br />
//鍏朵粬璇彞
               JFrame mainFrame = new JFrame("嫻嬭瘯涓葷獥浣?);
                mainFrame.getContentPane().add(otherVisibleObj, BorderLayout.CENTER);
                mainFrame.pack();
                TrayFactory.createTray(mainFrame, "images/icon.png", "榪欐槸宸ュ叿鎻愮ず");        
                mainFrame.setVisible(true);
涓嬮潰緇欏嚭涓涓畬鏁寸殑渚嬪瓙銆?br />涓誨簲鐢紙MainApp.java錛夋簮浠g爜濡備笅錛?br />
import java.awt.*;
import javax.swing.*;

public class MainApp {
        private static void createAndShowGUI() {
                JFrame mainFrame = new JFrame("嫻嬭瘯涓葷獥浣?);
                JLabel jLabel = new JLabel("榪欐槸涓涓爣絳?, SwingConstants.CENTER);
                jLabel.setPreferredSize(new Dimension(400, 300));
    mainFrame.getContentPane().add(jLabel, BorderLayout.CENTER);
    
                mainFrame.pack();
                TrayFactory.createTray(mainFrame, "images/icon.png", "浣犲ソ錛孞ava!\nHello,Java!");
                mainFrame.setVisible(true);
        }
    
        public static void main(String[] args) {
                String lf = UIManager.getSystemLookAndFeelClassName();
                try {
                        UIManager.setLookAndFeel(lf);
                } 
                catch(Exception e) {
                }
                
                javax.swing.SwingUtilities.invokeLater(new Runnable() {
                                public void run() {
                                        createAndShowGUI();
                                }
    });
           
}

涓虹畝鍗曡搗瑙侊紝鍙互鎶奣rayFactory.java鍜孧ainApp.java鏀懼湪鍚屼竴鐩綍涓嬶紝鎶奿con.png鏂囦歡鏀懼湪褰撳墠鐩綍鐨刬mages鐩綍涓嬨?br />
===
from
http://blog.sina.com.cn/s/blog_a5f093b401018ss1.html



DolveVita 2013-01-13 09:27 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 国产又黄又爽又大的免费视频| 亚洲一区二区观看播放| 一级毛片在线播放免费| 国产高清在线精品免费软件 | 成年男女男精品免费视频网站 | 免费一级做a爰片久久毛片潮| 国产特级淫片免费看| 国产亚洲视频在线观看网址| 国产成人涩涩涩视频在线观看免费| 亚洲欧美成人一区二区三区| 精品国产免费观看久久久| 久久久久亚洲精品无码网址色欲| 在线观着免费观看国产黄| 日本一区二区三区在线视频观看免费 | 黄网站免费在线观看| 亚洲av永久无码精品网站| 免费人妻无码不卡中文字幕系| 亚洲精品亚洲人成在线观看麻豆| 在线观看日本免费a∨视频| 亚洲欧洲日韩国产一区二区三区 | 久久亚洲精品无码播放| 一区二区三区无码视频免费福利| 亚洲香蕉免费有线视频| 成年女人视频网站免费m| 看全免费的一级毛片| 欧洲亚洲国产清在高| 曰批视频免费30分钟成人| 看Aⅴ免费毛片手机播放| 亚洲精品你懂的在线观看| 四虎在线免费视频| 亚洲αⅴ无码乱码在线观看性色| 亚洲精品无码激情AV| 99xxoo视频在线永久免费观看| 亚洲男人天堂2022| 国产成人毛片亚洲精品| 6080午夜一级毛片免费看| 亚洲熟妇无码八V在线播放| 亚洲精品成人无限看| 免费无码肉片在线观看| 亚洲精品国产日韩无码AV永久免费网 | 国产一级淫片a免费播放口之|