Java Beans Introspection API在PropertyDescriptor
類中包含方法isExpert
。基於Bean的GUI編輯器,如WindowsMaker,使用它來隱藏或顯示「異國情調」屬性。如何將Java bean屬性設置爲專家屬性?
是什麼導致Java bean的某個屬性被視爲「專家」?例如,Swing庫如何將某些屬性設置爲「專家屬性」?我如何以編程方式爲我編寫的Java bean執行相同操作?
Java Beans Introspection API在PropertyDescriptor
類中包含方法isExpert
。基於Bean的GUI編輯器,如WindowsMaker,使用它來隱藏或顯示「異國情調」屬性。如何將Java bean屬性設置爲專家屬性?
是什麼導致Java bean的某個屬性被視爲「專家」?例如,Swing庫如何將某些屬性設置爲「專家屬性」?我如何以編程方式爲我編寫的Java bean執行相同操作?
您可以爲您的bean創建BeanInfo類。這使您可以自定義屬性描述符。 JavaBean tutorial中有一節介紹了這一點。
這顯然是在JDK中使用非標準的編譯器擴展完成的。
如果你看看Swing的源代碼,一些Javadoc註釋包括@beaninfo
標籤,包含這樣的信息:
/**
* ... Some comment ...
* @beaninfo
* bound: true
* expert: true
*/
public void setSomething(SomeType value) {
// ...
}
這裏有一個例子,在JTable class source code。我也發現this article,談論@beaninfo
標籤。
看起來像孫實施了一個Doclet來生成他們的BeanInfo類... – jackrabbit
謝謝,這就是我一直在尋找。 –