首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JavaBeans 開發教程(三):用戶化、屬性編輯器與持久化

     編輯:Java 相關知識

JavaBeans 用戶化機制

開發者可通過三種方式描述 Bean 信息,供構建工具用戶化外觀與行為:

  • Customizer(用戶化器):複雜 Bean 提供圖形化配置界面
  • PropertyEditor(屬性編輯器):為特定屬性提供自定義編輯方式
  • BeanInfo:描述 Bean 的屬性、方法、事件及顯示信息

簡單 Bean 可無此三者,構建工具自動透視分析。

用戶化器接口 Customizer

public class OurButtonCustomizer extends Panel implements Customizer {
    private PropertyChangeSupport changes = new PropertyChangeSupport(this);
    public void addPropertyChangeListener(PropertyChangeListener l) {
        changes.addPropertyChangeListener(l);
    }
    public void removePropertyChangeListener(PropertyChangeListener l) {
        changes.removePropertyChangeListener(l);
    }
    // 實現圖形化屬性配置界面
}

必須實現屬性變更監聽器管理,供構建工具監聽屬性變化。

屬性編輯器 PropertyEditor

public class MoleculeNameEditor extends PropertyEditorSupport {
    public String[] getTags() {
        return new String[]{"HyaluronicAcid", "Benzene", "buckmisterfullerine",
            "cyclohexane", "ethane", "water"};
    }
}

構建工具在屬性表中提供下拉選單選擇預定義值。

BeanInfo 接口

public class MoleculeBeanInfo extends SimpleBeanInfo {
    public PropertyDescriptor[] getPropertyDescriptors() {
        try {
            PropertyDescriptor pd = new PropertyDescriptor("moleculeName", Molecule.class);
            pd.setPropertyEditorClass(MoleculeNameEditor.class);
            return new PropertyDescriptor[]{pd};
        } catch (Exception ex) { return null; }
    }
}

關聯屬性編輯器,定義屬性顯示名、幫助信息等。

JavaBeans 持久化

  • 實現 java.io.Serializable 接口,字段自動序列化保存
  • 不想保存的字段標註 transient 或 static
  • 公開屬性通常都應保存,內部狀態可選擇性保存

版本演進兼容性

  • 兼容:添加字段、移除類引用、修改訪問修飾符
  • 不兼容:刪除字段、改變字段在類層次位置、修改 transient/static 屬性

存儲格式

以 .jar (ZIP) 格式存儲,包含 MANIFEST 指定 Bean 類。網絡傳輸高效,資源捆綁部署。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved