編寫專業 JavaBean 必須遵循 Sun Microsystems JavaBean 規範。以下從構造器、屬性、事件、操作、BeanInfo、國際化、部署等維度詳細說明最佳實踐。
public Fireworks() {
setAutoStart(true);
setBackground(Color.black);
setSpeed(10);
setRadius(40);
}
構造器中調用 setter 設置默認值,確保屬性初始化一致性。
public Dimension getPreferredSize() {
return new Dimension(radius * 3, radius * 3);
}
public Dimension getMinimumSize() {
return getPreferredSize();
}
避免初次放入設計器時顯示 0×0 像素導致用戶困惑。屬性變更時首選尺寸應動態調整(如方向切換)。
private int speed;
public int getSpeed() { return speed; }
public void setSpeed(int s) {
speed = s;
// 影響外觀時重繪
repaint();
// 影響尺寸/位置時驗證佈局
validateAll();
}
get/set + 屬性名首字母大寫is 前綴private void validateAll() {
if (isValid()) {
Component self = this;
self.invalidate();
Component parent = self.getParent();
if (parent != null) {
parent.invalidate();
self = parent;
}
self.validate();
}
}
屬性設置順序不應影響 Bean 行為,需支持任意順序初始化。
play() 應處理打開聲音、設置參數、播放全流程;stop() 即使未播放也應正常工作public void start() {
if (thread == null) {
thread = new Thread(this);
thread.start();
}
}
public class FireworksEvent extends EventObject {
public static final int EXPLODED = 1;
private int id;
public FireworksEvent(Component source, int id) {
super(source);
this.id = id;
}
public int getID() { return id; }
}
EventObjectEXPLODED)public interface FireworksListener extends EventListener {
void exploded(FireworksEvent e);
}
EventListener(JAR 向導識別關鍵)private Vector listeners = new Vector();
public void addFireworksListener(FireworksListener l) {
listeners.addElement(l);
}
public void removeFireworksListener(FireworksListener l) {
listeners.removeElement(l);
}
public void processFireworksEvent(FireworksEvent e) {
for (Enumeration en = listeners.elements(); en.hasMoreElements(); ) {
((FireworksListener) en.nextElement()).exploded(e);
}
}
public void run() {
// 觸發點
processFireworksEvent(new FireworksEvent(this, FireworksEvent.EXPLODED));
}
.properties 文件。JAR 向導自動處理,屬性編輯器/定製器需手動分離。理想情況提供多語言 properties。getPreferredSize,關鍵屬性變更時自動調整。sum interval 代替 accumulatorInterval),首選小寫+空格分隔。BeanInfo 隱藏內部實例變量/方法。JAR 向導簡化操作。優秀的 JavaBean 不僅功能正確,更需在工具集成性、國際化、部署效率、用戶體驗等方面達到專業標準。遵循本指南可確保 Bean 在各類構建工具、IDE、運行環境中表現一致、高效。