Documentation
Annotations
The @BeanInfo
and @PropertyDesc
annotations make it very easy to specifying
BeanInfo information directly in the custom component. It is no longer necessary
to implement extra BeanInfo classes. This drastically reduces time and code
needed to create BeanInfo information.
When using the JFormDesigner annotations, you have to add the library
jfd-annotations.jar
(from redistributables) to
the build path of your project (necessary for the Java compiler). The
documentation is in jfd-annotations-javadoc.zip
. It is not necessary to
distribute jfd-annotations.jar
with your application.
The API documentation is also available here: doc.formdev.com/jfd-annotations/
@BeanInfo¶
This annotation can be used to specify additional information for constructing a BeanInfo class and its BeanDescriptor.
Example for specifying a description, an icon, property display names and flags, and property categories:
@BeanInfo( description="My Bean", icon="MyBean.gif", properties={ @PropertyDesc(name="magnitude", displayName="magnitude (in %)", preferred=true) @PropertyDesc(name="enabled", expert=true) }, categories={ @Category(name="Sizes", properties={"preferredSize", "minimumSize", "maximumSize"}), @Category(name="Colors", properties={"background", "foreground"}), } ) public class MyBean extends JCompoment { ... }
Example for a container component that has a content pane:
@BeanInfo(isContainer=true, containerDelegate="getContentPane") public class MyPanel extends JPanel { ... }
@PropertyDesc¶
This annotation can be used to specify additional information for constructing a PropertyDescriptor.
This annotation may be used in a @BeanInfo
annotation (see
@BeanInfo.properties()
) or may be attached to property getter or setter
methods. If the getter method of a property is annotated, then the setter method
of the same property is not checked for this annotation.
Important: This annotation requires that the @BeanInfo
annotation is
specified for the bean class. Otherwise, this annotation is ignored when
specified at methods.
Example for attaching this annotation to a property getter method:
@PropertyDesc(displayName="magnitude (in %)", preferred=true) public int getMagnitude() { return magnitude; }
Example for specifying this annotation in a @BeanInfo
annotation:
@BeanInfo( properties={ @PropertyDesc(name="magnitude", displayName="magnitude (in %)", preferred=true) } ) public class MyBean extends JCompoment { ... }
@DesignCreate¶
This annotation can be used to mark a static method that should be invoked by JFormDesigner to create instances of the bean, which are then used in the JFormDesigner Design view. The annotated method must be static, must not have parameters and must return the instance of created bean.
Example for using this annotation to initialize the bean with test data for the Design view:
public class MyBean extends JCompoment { @DesignCreate private static MyBean designCreate() { MyBean myBean = new MyBean(); myBean.setData( new SomeDummyDataForDesigning() ); return myBean; } public MyBean() { // ... } }