锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
System.getProperty("user.dir")
鍦⊿ervlet涓?
ServletContext servletContext = config.getServletContext();
String rootPath = servletContext.getRealPath("/");
鍦ㄨ嚜瀹氫箟鏍囩涓紝鍒嗗竷寮忕幆澧冧笅錛岀敤
((HttpServletRequest) this.pageContext.getRequest()).getContextPath();鑾峰彇web鐨勮礬寰勶紝
濡?#8220;\web”
鍦╦sp涓?
application.getRealPath("")
]]>
JavaBean鐨勪簨浠跺強鑷畾涔変簨浠訛紱
JavaBean鎸佷箙鍖?nbsp;
JavaBean鐨勮嚜媯
JavaBean鐨?/strong>緙栫▼瀹炰緥
涓銆丣ava璇█鐨勭粍浠舵妧鏈?nbsp;
1銆丣avaBean鏄粈涔堬紵
錛?錛塀ean鏄竴涓壒孌婄殑綾伙紝榪欎釜綾誨繀欏葷鍚圝avaBean瑙勮寖錛堟槸涓涓潪甯哥畝鍗曠殑閬靛驚鏌愮涓ユ牸鍗忚鐨凧ava綾伙級銆?br>錛?錛塉avaBean鏄敤Java璇█緙栧啓鐨勫彲閲嶇敤杞歡緇勪歡銆?br>2銆丅ean鐨勭綾伙細
鍙鍖?/font>杞歡緇勪歡錛氬彲浠ユ槸綆鍗曠殑GUI鍏冪礌錛屽鎸夐挳鎴栨粴鍔ㄦ潯錛涗篃鍙互鏄鏉傜殑錛屽鏁版嵁搴?/font>瑙嗗浘
闈炲彲瑙嗗寲杞歡緇勪歡錛氭病鏈塆UI琛ㄧ幇褰㈠紡錛岀敤浜庡皝瑁呬笟鍔¢昏緫銆?/font>鏁版嵁搴?/font>鎿嶄綔絳?br>3銆丣avaBean涓庡井杞殑ActiveX鐨勪笉涓鏍?br>JavaBean鏄笌騫沖彴鏃犲叧鐨?br>ActiveX鏄熀浜嶹indows緋葷粺騫沖彴鐨?nbsp;
4銆丣avaBean緇勪歡涓嶦JB鐨勪笉鍚岋細
JavaBean緇勪歡瀛樺偍鐘舵佷俊鎭?br>EJB緇勪歡瀛樺偍涓氬姟閫昏緫
5銆丅ean鐨勫簲鐢ㄥ満鍚堬細
鍦ㄤ嬌鐢↗ava緙栫▼鏃訛紝騫朵笉鏄墍鏈?/font>杞歡妯″潡閮介渶瑕佽漿鎹㈡垚Bean銆?br>Bean姣旇緝閫傚悎浜庨偅浜涘叿鏈夊彲瑙嗗寲鎿嶄綔鍜屽畾鍒剁壒鎬х殑杞歡緇勪歡銆?br>6銆丣avaBean鐨?/font>寮鍙?/font>鏂規硶錛?br>閲囩敤鍙鍖?/font>寮鍙?/font>宸ュ叿---涓昏鏈夛細
Borlands鍏徃鐨凧Builder
SunSoft鐨凧ava Studio
Symantec鐨刅isual Café
IBM鐨刅isual Age for Java絳夛紱
褰撶劧涔熷彲浠ユ墜鍐欎唬鐮併?br>7銆丣avaBean鐨?/font>緙栫▼瑕佺偣錛?br>涓涓狟ean涓嶅繀闈炶緇ф壙鐗瑰畾鐨勫熀綾繪垨鎺ュ彛錛?br>鍙鍖栫殑Bean蹇呴』緇ф壙鐨勭被鏄疌omponent綾伙紝榪欐牱瀹冧滑鎵嶈兘娣誨姞鍒板彲瑙嗗寲瀹瑰櫒涓幓錛?br>闈炲彲瑙嗗寲Bean鍒欎笉闇瑕佺戶鎵胯繖涓被銆?br>涓涓狟ean鏈川涓婂氨鏄竴涓狫ava綾葷殑浠g爜錛屽彧鏄坊鍔犱簡鎵璋撶殑鑷鍜屽簭鍒楀寲錛屽洜姝ean瀹為檯灝辨槸涓涓櫘閫氱殑Java綾匯?nbsp;
浜屻丣avaBean璁捐鐩爣鍙婂叾瀹炵幇鎵嬫
錛?錛夌揣鍑戣屾柟渚跨殑鍒涘緩鍜屼嬌鐢?nbsp;
鍥犱負Bean緇勪歡甯稿父鐢ㄤ簬鍒嗗竷寮忚綆楃幆澧冧腑錛岃繖浣垮緱JavaBean緇勪歡甯稿父闇瑕佸湪鏈夐檺鐨勫甫瀹借繛鎺ョ幆澧冧笅榪涜浼犺緭銆?br>鏄劇劧錛屼負浜嗛傚簲浼犻佺殑鏁堢巼鍜岄熷害錛孞avaBean緇勪歡蹇呴』鏄秺绱у噾瓚婂ソ銆?br>錛?錛夊畬鍏ㄧ殑鍙Щ妞嶆?br>JavaBean API涓庣嫭绔嬩簬騫沖彴鐨凧ava緋葷粺鐩哥粨鍚堬紝鎻愪緵浜嗙嫭绔嬩簬騫沖彴鐨勭粍浠惰В鍐蟲柟妗堛傚洜姝わ紝緇勪歡寮鍙?/font>鑰呭氨鍙互涓嶅繀鍐嶄負甯︽湁JavaBean騫沖彴鐗規湁鐨勭被搴撹屾媴蹇冧簡銆?br>鏈緇堢殑緇撴灉閮藉皢鏄綆楁満鐣屽叡浜彲閲嶅浣跨敤鐨勭粍浠訛紝騫跺湪浠諱綍鏀寔Java鐨勭郴緇熶腑鏃犻渶淇敼鍦版墽琛?br>錛?錛夌戶鎵縅ava鐨勫己澶у姛鑳?br>鐜版湁鐨凧ava緇撴瀯宸茬粡鎻愪緵浜嗗縐嶆槗浜庡簲鐢ㄤ簬緇勪歡鐨勫姛鑳姐傚叾涓竴涓瘮杈冮噸瑕佺殑鏄疛ava鏈韓鐨勫唴緗被鍙戠幇鍔熻兘錛屽畠鍙互浣垮緱瀵硅薄鍦ㄨ繍琛屾椂褰兼鍔ㄦ佸湴浜や簰浣滅敤錛岃繖鏍峰璞″氨鍙互浠?/font>寮鍙?/font>緋葷粺鎴栧叾寮鍙?/font>鍘嗗彶涓嫭绔嬪嚭鏉ャ?nbsp;
JavaBean緇ф壙鍦ㄧ幇鏈塉ava鍔熻兘涓繕鏈変竴涓噸瑕佺殑鏂歸潰錛屽氨鏄寔涔呮э紝瀹冧繚瀛樺璞″茍鑾峰緱瀵硅薄鐨勫唴閮ㄧ姸鎬併?nbsp;
閫氳繃Java鎻愪緵鐨勫簭鍒楀寲(serialization)鏈哄埗錛屾寔涔呮у彲浠ョ敱JavaBean鑷姩榪涜澶勭悊銆?nbsp;
褰撶劧錛屽湪闇瑕佺殑鏃跺欙紝寮鍙?/font>鑰呬篃鍙互鑷繁寤虹珛瀹氬埗鐨勬寔涔呮ф柟妗堛?nbsp;
涓夈佷竴涓畝鍗曠殑JavaBean紼嬪簭浠g爜
import java.awt.*;
import java.io.Serializable;
public class JavaBeanButton extends Canvas implements Serializable
{ //浠諱綍瀹炵幇浜哠erializable鎺ュ彛鐨凧ava綾婚兘鍙互鎴愪負涓涓狫avaBean綾匯?br> public JavaBeanButton()
{ this.setSize(50,50);
}
public void paint(Graphics g)
{ g.setColor(Color.LIGHT_GRAY);
g.fillOval(0,0,50,50);
}
}
JavaBean紼嬪簭緇撴瀯瑕佺偣
1銆佸彲瑙嗗寲鐨凚ean搴旇浠嶤omponent鎴栬匔anvas綾繪潵緇ф壙
2銆佹瘡涓狟ean搴旇瀹炵幇Serializable鎺ュ彛
3銆丣avaBean涓殑鏋勯犲嚱鏁?br> 姣忎釜JavaBean鐨勭被涓簲璇ユ彁渚涗竴涓笉甯﹀弬鏁扮殑榛樿鏋勯犲嚱鏁幫紝浠ヤ究鏋勯犲伐鍏瘋兘澶熷疄渚嬪寲鍏跺璞°傚綋鐒惰繕搴旇鏈夊甫鍙傛暟鐨勬瀯閫犲嚱鏁頒互渚胯兘澶熷瀹冭繘琛屽垵濮嬪寲銆?nbsp;
4銆佸叾瀹冨垯涓庝竴鑸殑Java綾葷殑緙栫▼瑙勫垯鐩稿悓
鍥涖丣avaBean鐨勫瓨鍌ㄦ牸寮?nbsp;
Jar鏂囦歡錛?br> JavaBean緇勪歡琚璁″嚭鏉ュ悗錛屼竴鑸槸浠ユ墿灞曞悕涓簀ar鐨勬牸寮忔枃浠跺瓨鍌紝鍦╦ar涓寘鍚笌JavaBean鏈夊叧鐨勪俊鎭紝騫朵互MANIFEST鏂囦歡鎸囧畾鍏朵腑鐨勫摢浜涚被鏄疛avaBean銆?/font>
Jar鏂囦歡涓殑manifest鏂囦歡鐨勫唴瀹瑰涓嬶細
Name: JavaBean.class
Java-Bean: True
鍒╃敤Jar鍛戒護浜х敓*.jar鏂囦歡銆傚懡浠ゆ牸寮忓涓?br>C> jar cfm JavaBean.jar JavaBeanManifest.txt JavaBean.class
鍙傝僇avaBeanStepbyStep涓殑step1
浜斻丣avaBean涓殑灞炴?nbsp;
JavaBean鐨勫睘鎬т笌涓鑸琂ava紼嬪簭涓墍鎸囩殑灞炴э紝鎴栬呰涓庢墍鏈夐潰鍚戝璞$殑紼嬪簭璁捐璇█涓璞$殑灞炴ф槸涓涓蹇碉紝鍦ㄧ▼搴忎腑鐨勫叿浣撲綋鐜板氨鏄被涓殑鍙橀噺銆傚湪JavaBean鐨勮璁′腑錛屾寜鐓у睘鎬х殑涓嶅悓浣滅敤鍙堢粏鍒嗕負鍥涚被錛?nbsp;
鍗曞煎睘鎬?br> 绱㈠紩灞炴?br> 鍏寵仈灞炴?br> 闄愬埗灞炴?/font>
灞炴т竴銆丣avaBean涓殑鍗曞煎睘鎬?br>錛?錛夊惈涔夛細瀹冭〃紺轟竴涓即闅忔湁涓瀵筭et/set鏂規硶鐨勫彉閲忋傚睘鎬у悕涓庡拰璇ュ睘鎬х浉鍏崇殑get/set鏂規硶鍚嶅搴斻?nbsp;
錛?錛夌紪鐮佽鍒?br>灞炴у0鏄庝負縐佹湁錛屾病鏈夊叕鏈夌殑灞炴?br>閫氳繃璁塊棶鏂規硶鑰屼笉鏄洿鎺ュ瓨鍌ㄥ疄渚嬪彉閲?br>灞炴у紉xx瀵瑰簲鏈塯etXxx鍜宻etXxx鏂規硶
瀵逛簬甯冨皵鍨嬬殑灞炴э紝鍙互鐢╥sXxx鏂規硶鏌ュ?br>Bean鐨勬櫘閫氭柟娉曚笉閫傚悎涓婇潰鐨勫懡鍚嶈鍒欙紝浣嗗畠浠槸鍏湁鐨勩?/font>
JavaBean涓殑鍗曞煎睘鎬хず渚嬩唬鐮?/font>
public class myCanvas extends Canvas implements Serializable
{
String ourString= "Hello"; //灞炴у悕涓簅urString錛岀被鍨嬩負瀛楃涓?br> boolean editable; public myCanvas()
{ setBackground(Color.red);
setForeground(Color.blue); }
public void setOurString(String newString)
{ /* “set”灞炴?/
ourString=newString; } public String getOurString()
{ /* "get"灞炴?nbsp;*/
return ourString; }
public boolean isEditable()
{ /* "甯冨皵"灞炴?nbsp;*/
return editable; }
}
灞炴т簩銆丣avaBean涓殑绱㈠紩灞炴?nbsp;
鍚箟錛?br>瀹冭〃紺轟竴涓暟緇勫箋備嬌鐢ㄤ笌璇ュ睘鎬у搴旂殑set/get鏂規硶鍙彇寰楁暟緇勪腑鐨勬垚鍛樻暟鎹鹼紙闇瑕佹湁涓涓暣鏁扮儲寮曞弬鏁幫級鎴栬呬竴嬈¤緗垨鍙栧緱鏁翠釜鏁扮粍鐨勫箋?br>绱㈠紩灞炴х殑璁捐妯″紡濡備笅錛?br>錛?錛夎闂暣涓儲寮曞睘鎬ф暟緇勭殑鏂規硶
public
public void set
錛?錛夎闂暣涓儲寮曞睘鎬т腑鐨勫崟涓肩殑鏂規硶
public
public void set
JavaBean涓殑绱㈠紩灞炴хず渚嬩唬鐮?br>public class myCanvas extends Canvas implements Serializable
{ int[] dataSet={1,2,3,4,5,6}; //dataSet鏄竴涓儲寮曞睘鎬?nbsp; public myCanvas()
{ setBackground(Color.red);
setForeground(Color.blue); }
public void setDataSet(int[] newdataSet)//璁劇疆鏁翠釜鏁扮粍
{ dataSet= newdataSet; } /* 璁劇疆鏁扮粍涓殑鍗曚釜鍏冪礌鍊?nbsp;*/
public int[] getDataSet() /* 鍙栧緱鏁翠釜鏁扮粍鍊?nbsp;*/
{ return dataSet; }
public void setDataSet(int index, int x)
{ dataSet[index]=x; } public int getDataSet(int index)
{ /* 鍙栧緱鏁扮粍涓殑鎸囧畾鍏冪礌鍊?nbsp;*/
return dataSet[index]; }
}
灞炴т笁銆丣avaBean涓殑鍏寵仈灞炴?/font>
鍚箟錛?br>瀹冩槸鎸囧綋璇ョ灞炴х殑鍊煎彂鐢熷彉鍖栨椂錛岃閫氱煡鍏跺畠鐨勫璞°?br>姣忔鐨勫睘鎬у兼敼鍙樻椂錛岃繖縐嶅睘鎬у氨鐐圭伀涓涓狿ropertyChange浜嬩歡銆?br>浜嬩歡涓皝瑁呬簡灞炴у悕銆佸睘鎬х殑鍘熷箋佸睘鎬у彉鍖栧悗鐨勬柊鍊箋?br>鑷充簬鎺ユ敹浜嬩歡鐨凚ean搴斿仛浠涔堝姩浣滅敱鍏惰嚜宸卞畾涔夈?/font>
鍖呭惈鍏寵仈灞炴х殑Bean蹇呴』鍏鋒湁浠ヤ笅鐨勫姛鑳斤細
鍏佽浜嬩歡鐩戝惉鍣ㄦ敞鍐屽拰娉ㄩ攢涓庡叾鏈夊叧鐨勫睘鎬т慨鏀逛簨浠訛紱
褰撲慨鏀逛竴涓叧鑱斿睘鎬ф椂錛屽彲浠ュ湪鐩稿叧鐨勭洃鍚櫒涓婅Е鍙戝睘鎬т慨鏀逛簨浠躲?/font>
鍦╦ava.beans鍖呬腑鍒╃敤PropertyChangeSupport綾誨垱寤哄嚭璇ョ被鐨勫璞★紝浠庤屽彲浠ョ敤浜庣鐞嗘敞鍐岀殑鐩戝惉鍣ㄥ垪琛ㄥ拰灞炴т慨鏀逛簨浠墮氱煡鐨勫彂閫併?/font>
鍏寵仈灞炴х殑緙栫▼瑕佺偣
1銆佺敱浜庡綋鍏寵仈灞炴ц鏀瑰彉鏃訛紝灝嗕嬌鐢≒ropertyChangeSupport綾諱腑鐨刦irePropertyChange鏂規硶鏉ョ偣鐏睘鎬ф敼鍙樹簨浠躲?nbsp;
2銆佸簲璇ュ瓨鍌ㄥ叧鑱斿睘鎬х殑鍘熷灞炴у鹼紝鍥犱負灞炴у煎拰鏂扮殑灞炴у奸兘瑕佷紶緇檉irePropertyChange()鏂規硶錛岃屼笖瀹冧滑閮芥槸Object綾誨瀷銆傚洜姝ゅ鏋滀負鍩烘湰鐨勬暟鎹紝鍒欏簲璇ヨ漿鎹負瀵瑰簲鐨勭被綾誨瀷銆?nbsp;
3銆佸睘鎬т慨鏀逛簨浠舵槸鍦ㄥ睘鎬ц淇敼鍚庤Е鍙戙?br>changes.firePropertyChange("ourString",oldString,newString);
4銆丅ean瑕侀鐣欏嚭涓浜涙帴鍙g粰寮鍙?/font>宸ュ叿錛?/font>寮鍙?/font>宸ュ叿浣跨敤榪欎簺鎺ュ彛錛屾妸鍏跺畠鐨凧avaBean瀵硅薄涓庤Bean鐩告寕鎺ャ?nbsp;
public void addPropertyChangeListener(PropertyChangeListener listener)
{changes.addPropertyChangeListener(listener);}
public void removePropertyChangeListener(PropertyChangeListener listener)
{changes.removePropertyChangeListener(listener);}
灞炴у洓銆丣avaBean涓殑闄愬埗灞炴?/font>
鍚箟錛?br>瀹冩寚褰撹繖涓睘鎬х殑鍊艱鍙戠敓鍙樺寲鏃訛紝涓庤繖涓睘鎬у凡寤虹珛浜嗘煇縐嶈繛鎺ョ殑鍏跺畠澶栭儴Java瀵硅薄鍙惁鍐寵灞炴у肩殑鏀瑰彉錛?br>褰撶劧Bean 鏈韓涔熷彲浠ュ惁鍐寵Bean灞炴у肩殑鏀瑰彉銆?br>濡備綍闄愬埗灞炴э細 闄愬埗灞炴х殑鐩戝惉鑰呴氳繃鎶涘嚭PropertyVetoException鏉ラ樆姝㈣灞炴у肩殑鏀瑰彉銆?br>鐩戝惉鑰咃細闄愬埗灞炴т竴鑸湁涓ょ鐩戝惉鑰?br>灞炴у彉鍖栫洃鍚?br>鍚﹀喅灞炴ф敼鍙樼殑鐩戝惉鑰?nbsp;
鍚﹀喅灞炴ф敼鍙樼殑鐩戝惉鑰呭湪鑷繁鐨勫璞′唬鐮佷腑鏈夌浉搴旂殑鎺у埗璇彞錛屽湪鐩戝惉鍒版湁闄愬埗灞炴ц鍙戠敓鍙樺寲鏃訛紝鍦ㄦ帶鍒惰鍙ヤ腑鍒ゆ柇鏄惁搴斿惁鍐寵繖涓睘鎬у肩殑鏀瑰彉
闄愬埗灞炴х殑緙栫▼瑕佺偣
1銆佸垎鍒0鏄嶱ropertyChangeSupport鍜孷etoableChangeSupport綾葷殑瀵硅薄錛堥檺鍒跺睘鎬у煎彲鍚︽敼鍙?nbsp;錛?nbsp;
2銆佸綋灞炴ц鏀瑰彉鏃訛紝鐒跺悗鐐圭伀灞炴ф敼鍙樺惁鍐充簨浠躲?nbsp;
vetos.fireVetoableChange(…);
3銆佽嫢鏈夊叾瀹冨璞″惁鍐沖睘鎬х殑鏀瑰彉錛屽垯紼嬪簭鎶涘嚭寮傚父錛屼笉鍐嶇戶緇墽琛屼笅闈㈢殑璇彞錛屾柟娉曠粨鏉熴傝嫢鏃犲叾瀹冨璞″惁鍐沖睘鎬х殑鏀瑰彉錛屽垯鎶婅灞炴ц祴浜堟柊鍊鹼紝騫剁偣鐏睘鎬ф敼鍙樹簨浠躲?br>4銆佷笌灞炴ф敼鍙樹簨浠剁浉鍚岋紝涔熻涓洪檺鍒跺睘鎬ч鐣欐帴鍙o紝浣垮叾瀹冨璞″彲娉ㄥ唽鍏ラ檺鍒跺睘鎬х殑鍚﹀喅鏀瑰彉鐩戝惉鑰呴槦鍒椾腑錛屾垨鎶婅瀵硅薄浠庝腑娉ㄩ攢銆?nbsp;
5銆侀檺鍒跺睘鎬у疄闄呬笂鏄竴縐嶇壒孌婄殑鍏寵仈灞炴э紝鍙槸瀹冪殑鍊肩殑鍙樺寲鍙互琚洃鍚呭惁鍐蟲帀銆?/font>
public void addVetoableChangeListener(VetoableChangeListener listener)
{
vetos.addVetoableChangeListener(listener); } public void removeVetoableChangeListener(VetoableChangeListener listener)
{
vetos.removeVetoableChangeListener(listener); }
鍏丣avaBean鐨勪簨浠?/font>緙栫▼
1銆侀氳繃浜嬩歡澶勭悊鏈哄埗
鍙涓浜涚粍浠朵綔涓轟簨浠舵簮錛屽彂鍑哄彲琚弿榪扮幆澧冩垨鍏跺畠緇勪歡鎺ユ敹鐨勪簨浠躲?br>榪欐牱錛屼笉鍚岀殑緇勪歡灝卞彲鍦ㄦ瀯閫犲伐鍏峰唴緇勫悎鍦ㄤ竴璧鳳紝緇勪歡涓庣粍浠躲佺粍浠朵笌澶栫晫涔嬮棿閫氳繃浜嬩歡鐨勪紶閫掕繘琛岄氫俊錛屾瀯鎴愪竴涓簲鐢ㄣ?/font>
2銆丣avaBean浜嬩歡妯″瀷鐨勬諱綋緇撴瀯錛堢暐錛?nbsp;
3銆佷簨浠剁洃鍚呯殑娉ㄥ唽涓庢敞閿
涓轟簡鍚勭鍙兘鐨勪簨浠剁洃鍚呮妸鑷繁娉ㄥ唽鍏ュ悎閫傜殑浜嬩歡婧愪腑錛屽緩绔嬫簮涓庝簨浠剁洃鍚呴棿鐨勪簨浠舵祦錛屼簨浠舵簮蹇呴』涓轟簨浠剁洃鍚呮彁渚涙敞鍐屽拰娉ㄩ攢鐨勬柟娉曘?nbsp;
public void add< ListenerType> (< ListenerType> listener)錛?br>public void remove< ListenerType> (< ListenerType> listener)錛?nbsp;
4銆佷簨浠?/font>緙栫▼鐨勬楠?nbsp;
澹版槑鎸囧畾鐨勪簨浠舵帴鍙e璞?/font>
鍏佽瑙﹀彂璇ョ被鍨嬬殑浜嬩歡
瀹炵幇緇存姢璇ヤ簨浠剁殑鐩戝惉鍣ㄥ垪琛ㄧ殑鏂規硶錛堝簲璇ュ寘鍚湁娣誨姞鍜屽垹闄わ級
鍚戞墍鏈夋敞鍐岃綾誨瀷鐨勪簨浠剁粍浠跺垎鍙戣浜嬩歡
涓冦丣avaBean 鐨勮嚜媯
錛?錛夊惈涔夛細
浣垮閮ㄧ粍浠惰兘澶熷鎵懼埌鍏充簬JavaBean鐨勭粨鏋勫拰鍔熻兘鐨勫唴閮ㄤ俊鎭?nbsp;
錛?錛夋柟娉曪細
鍒╃敤璁捐妯″紡鏉ラ殣鍚湴鎻愪緵鑷淇℃伅銆?br>鐢變簬Bean涓殑灞炴с佹柟娉曘佷簨浠剁瓑鐨勫懡鍚嶆湁涓瀹氱殑瑙勫垯錛屽閮ㄧ郴緇熷彲浠ュ埄鐢ㄨ繖浜涜鍒欐潵鑾峰緱Bean鐨勭粨鏋勫拰鍔熻兘鐨勫唴閮ㄤ俊鎭?br>灞炴ц璁℃ā寮?br>浜嬩歡璁捐妯″紡
鏂規硶璁捐妯″紡
鍒╃敤BeanInfo鎻愪緵鏄劇ず淇℃伅
1銆佸埄鐢ㄥ睘鎬ц璁℃ā寮忔彁渚涜嚜媯淇℃伅
灞炴ц璁℃ā寮忥細
鐢ㄤ簬鏍囪瘑Bean 涓殑鍏湁鐨勫彲璁塊棶鐨勫睘鎬э紝鍗充緷璧杇etXXX()銆乻etXXX()銆乮sXXX()絳夎闂呮柟娉曟潵鍐沖畾鍙闂殑灞炴с?/font>
2銆佸埄鐢ㄤ簨浠惰璁℃ā寮忔彁渚涜嚜媯淇℃伅
浜嬩歡璁捐妯″紡錛?br>Bean灝嗕簨浠墮氱煡鍙戦佺粰闇瑕佹帴鏀惰繖浜涢氱煡騫跺凡緇忓湪榪欎釜Bean涓婃敞鍐屼簡鐨勪簨浠剁洃鍚櫒銆?br>鍥犱負浜嬩歡鐩戝惉鍣ㄥ繀欏誨湪Bean涓婅繘琛屾敞鍐岋紝鎵浠ラ渶瑕丅ean鎻愪緵閫傚綋鐨勬柟娉曟潵瀹炵幇娉ㄥ唽榪囩▼銆?br>鍥犱負鍦↗avaBean鐨勮嚜媯鏈哄埗涓紝鍙互浠庢敞鍐屾柟娉曠殑鍚嶅瓧浠ュ強鏂規硶鐨勫弬鏁扮被鍨嬫嫻嬪埌浜嬩歡婧愪細浜х敓浠涔堜簨浠躲?/font>
浜嬩歡璁捐妯″紡緙栫▼瑕佺偣
浜嬩歡娉ㄥ唽鏂規硶甯稿父鏄垚瀵瑰嚭鐜幫紙娣誨姞鍜屽垹闄わ級銆?br>JavaBean鐨勮嚜媯鍣ㄦ鏄嬌鐢ㄨ繖浜涙柟娉曡闂瓸ean鍙互鍙戦佺殑浜嬩歡銆?nbsp;
浜嬩歡娉ㄥ唽蹇呴』閬靛驚濡備笅鐨勪簨浠惰璁℃ā寮忥紝浠ヤ究鑷姩鑷鏈嶅姟鍙互姝g‘鍦拌繘琛?nbsp;
public void add
public void remove
3銆佸埄鐢ㄦ柟娉曡璁℃ā寮忔彁渚涜嚜媯淇℃伅
鐢變簬榪欎簺public鏂規硶鏄畬鍏ㄧ敱Bean鐨勮璁¤呭畾涔夌殑錛屽畠浠湪鍚勪釜Bean涓病鏈夊浐瀹氱殑浣跨敤鐗瑰緛錛屽洜姝ゅ榪欎簺鏂規硶娌℃湁鐗瑰畾鐨勮璁℃ā寮忚閬靛驚銆?nbsp;
瑕佹眰錛?br>Bean鍙互鍦ㄤ竴涓崟鐙殑鐩稿叧綾諱腑鏄劇ず鍦拌〃鐜板畠鐨勭壒寰侊紝榪欎釜綾誨簲璇ュ疄鐜癇eanInfo鎺ュ彛鎴栨槸緇ф壙SimpleBeanInfo綾繪潵鏄劇ず鍦拌〃鐜板彲浠ヨ鏋勯犲櫒宸ュ叿鑾峰彇鐨凚ean鐨勮璁$幆澧冧俊鎭?nbsp;
緙栫▼鐨勬柟娉曪細
灝咮ean鐨勭浉鍏充俊鎭被鐨勫悕縐板悗鍔?#8220;BeanInfo”
緇ф壙SimpleBeanInfo綾伙紙瀹冨疄鐜頒簡BeanInfo鎺ュ彛錛?br>鍦˙ean鐨勭浉鍏充俊鎭被涓疄鐜版墍闇瑕佺殑BeanInfo鎺ュ彛涓殑鏂規硶浠ユ樉寮忓湴鎻愪緵Bean鐨勪俊鎭?nbsp;
import java.beans.*;
public class JavaBeanButtonBeanInfo extends SimpleBeanInfo
{ public Image getIcon(int iconKind)
{//浠ヤ笅浠g爜涓篔avaBean鎻愪緵16*16鍜?2*32鐨勫浘鏍?br> }
public BeanDescriptor getBeanDescriptor()
{//浠ヤ笅浠g爜涓篔avaeBean鎻愪緵鍦ㄥ簲鐢ㄧ▼搴忕殑鏋勯犲伐鍏蜂腑鐨勬樉紺哄悕縐板瓧涓?br> }
public PropertyDescriptor[] getPropertyDescriptors()
{ //浠ヤ笅浠g爜鏄懼紡鍦板0鏄庡睘鎬?nbsp;
}
public int getDefaultPropertyIndex()
{ return 5;//灝嗘煇涓睘鎬т綔涓虹己鐪佺殑灞炴?br> }
public EventSetDescriptor[] getEventSetDescriptors()
{ //涓築ean鏄懼紡鍦版敞鍐屼簨浠舵帴鍙?nbsp;
}
}
鍏丣avaBean鎸佷箙鍖?nbsp;
鍚箟錛?nbsp; 閫氳繃鎸佷箙鍖栵紝鍙互灝咮ean鐨勫唴閮ㄧ姸鎬侊紙鏌愪簺瀛楁鐨勪俊鎭級淇濆瓨涓嬫潵騫跺浠ュ悗浣跨敤銆?nbsp;
瀹炵幇鏈哄埗錛?br> Bean鐨勬寔涔呭寲鏄熀浜嶫ava鐨勫璞″簭鍒楀寲鏈哄埗鐨勩傚洜姝ゅ湪瀹氫箟Bean鏃惰浣垮畠瀹炵幇Serializable鎺ュ彛銆?nbsp;
瀛樺偍浣嶇疆錛氬彲浠ュ瓨鍌ㄥ湪鏂囦歡涓?nbsp;瑕佺偣錛?br> 浠諱綍瀹炵幇浜哠erializable鎺ュ彛鐨凧ava綾婚兘鍙互鎴愪負涓涓狫avaBean綾匯?nbsp;
JavaBean鎸佷箙鍖栫殑褰㈠紡
錛堜竴錛夐粯璁ょ殑搴忓垪鍖栵細
瀹炵幇浜哠erializable搴忓垪鍖栨帴鍙g殑Bean涓瓧孌電殑淇℃伅灝嗚鑷姩淇濆瓨銆?nbsp;
鑻ヤ笉鎯充繚瀛樻煇浜涘瓧孌電殑淇℃伅鍒欏彲鍦ㄨ繖浜涘瓧孌靛墠鍐犱互transient鎴杝tatic鍏抽敭瀛?nbsp;
transient鍜宻tatic鍙橀噺鐨勪俊鎭槸涓嶅彲琚繚瀛樼殑銆傚洜涓簍ransient浠h〃Bean鍦ㄦ煇嬈$壒瀹氫細璇濇湡闂寸殑淇℃伅錛屾槸涓存椂鍙橀噺錛屾病鏈夊繀瑕佹案涔呬繚瀛樸?/font>
榛樿鐨勫簭鍒楀寲緙栫▼瑕佺偣
錛?錛変竴涓狟ean涓墍鏈塸ublic灞炴ч兘搴斿綋鏄淇濆瓨鐨勶紝涔熷彲鏈夐夋嫨鍦頒繚瀛樺唴閮ㄧ姸鎬併?nbsp;
錛?錛塀ean寮鍙?/font>鑰呭湪淇敼杞歡鏃訛紝鍙互娣誨姞瀛楁銆佺Щ璧板鍏跺畠綾葷殑寮曠敤錛屾敼鍙樹竴涓瓧孌電殑private/protected/public鐘舵侊紝榪欎簺閮戒笉褰卞搷綾葷殑瀛樺偍緇撴瀯鍏崇郴銆?nbsp;
錛?錛夊疄鐜頒簡Serializable搴忓垪鍖栨帴鍙g殑綾誨繀欏繪湁涓涓棤鍙傛暟鐨勬瀯閫犲嚱鏁幫紝閲嶅緩瀵硅薄鏃墮渶瑕佽皟鐢ㄥ畠銆?br>錛?錛夊綋浠庣被涓垹闄や竴涓瓧孌碉紝鏀瑰彉涓涓彉閲忓湪綾諱綋緋諱腑鐨勪綅緗紝鎶婃煇涓瓧孌墊敼鎴恡ransient/static錛屾垨鍘熸潵鏄痶ransient/static錛岀幇鏀逛負鍒殑鐗規ф椂錛岄兘灝嗗紩璧峰瓨鍌ㄥ叧緋葷殑鍙樺寲銆?nbsp;
錛?錛夊鏋淏ean鐨勫熀綾誨凡緇忓疄鐜頒簡搴忓垪鍖栨帴鍙o紝鍒欒Bean鍙互涓嶅繀鍐嶅疄鐜板畠銆?/font>
錛堜簩錛夊榛樿鐨勫簭鍒楀寲榪涜瀹氬埗錛屽湪Bean綾諱腑閲嶅啓readObject()涓巜riteObject()鏂規硶瀹氬埗搴忓垪鍖栫殑鏁版嵁銆?nbsp;
濡傛灉鍦ㄥ彲搴忓垪鍖栫殑Bean涓寘鍚湁涓婇潰涓や釜鏂規硶錛屽垯鍙互瀹炵幇瀹氬埗搴忓垪鍖?/font>
搴旂敤鍦哄悎錛?br>甯屾湜瀵瑰簭鍒楀寲鐨勮繃紼嬫墽琛屾洿澶氱殑鎺у埗錛堥夋嫨鎬у湴榪涜搴忓垪鍖栵級銆?nbsp;
搴忓垪鍖栦笉鑳界敱榛樿鐨勫簭鍒楀寲瀹屾垚鐨勬暟鎹static鏁版嵁
鎴栬呴渶瑕佸悜搴忓垪鍖栨暟鎹腑娣誨姞涓嶆槸瀵硅薄鏁版嵁鎴愬憳鐨勬暟鎹椂錛堥檮鍔犵殑鏁版嵁錛夈?nbsp;
浣嗚姹傚畠浠負private鏂規硶銆?br>瀹氬埗搴忓垪鍖栫殑紺轟緥浠g爜
private void writeObject(ObjectOutputStream out) throws IOException
{ out.defaultWriteObject();
//鍏堣繘琛岄粯璁ょ殑搴忓垪鍖栧啓鎿嶄綔
out.writeInt(JavaBeanButtonVersion );
//鍐嶅啓鍏tatic 鐨凧avaBeanButtonVersion鏁版嵁
}
private void readObject(ObjectInputStream in) throws IOException,ClassNotFoundException
{ in.defaultReadObject();
//鍏堣繘琛岄粯璁ょ殑搴忓垪鍖栬鎿嶄綔
JavaBeanButtonVersion =in.readInt();
//鍐嶈鍑簊tatic 鐨凧avaBeanButtonVersion鏁版嵁
}