2011-08-30 10 views
5

Java BeansイントロスペクションAPIには、PropertyDescriptorクラスにメソッドisExpertが含まれています。 BeanベースのGUIエディタ(WindowsMakerなど)は、これを使用して「エキゾチックな」プロパティを表示または非表示にします。Java Beanプロパティをエキスパートプロパティとして設定するにはどうすればよいですか?

Java Beanの特定のプロパティが「エキスパート」とみなされる原因は何ですか?たとえば、Swingライブラリは特定のプロパティを「エキスパートプロパティ」としてどのように設定していますか?私が書いたJava Beanに対して、プログラムでこれをどうやって行うことができますか?

答えて

1

BeanにはBeanInfoクラスを作成できます。これにより、プロパティ記述子をカスタマイズすることができます。 JavaBean tutorialにはこれをカバーするセクションがあります。

+0

ありがとう、それは私が探していたものです。 –

2

これは、JDKでは非標準コンパイラ拡張を使用しているようです。あなたはSwingのソースコードを見てみると

は、いくつかのJavadocコメントは、そのような情報を含む、@beaninfoタグが含まれています。ここでは

/** 
* ... Some comment ... 
* @beaninfo 
*  bound: true 
*  expert: true 
*/ 
public void setSomething(SomeType value) { 
    // ... 
} 

JTable class source codeで、一例です。

this articleと言って、@beaninfoタグについて話しています。

+0

SunがBeanInfoクラスを生成するためにドックレットを実装したように見えます... – jackrabbit

関連する問題