PJV26 1 JavaBeans je technologie výroby znovupoužitelných, na platformě nezávislých komponent. Podporována je od jdk 1.1 a BDK. Bean lze vizuálně vkládat do kompozitních Component a servletů pomocí designeru výběrem z lišty. Bean nemusí však být vizuální komponenta. Umožňuje introspekci svých vlastností (property), metod a událostí, tím že: dodržuje určitá pravidla (design patterns) - veřejné property musí být dostupné getry a/nebo setry - odpovídající atributy by měly být privátní. - musí implementovat Serializable. - musí mít konstruktor bez parametrů. - class file musí být zabalena v archivu jar. přidává informace definované interfejsem java.beans.BeanInfo Introspekci podporuje balíček java.lang.reflect.
PJV26 2 java.beans BeanInfo Simple BeanInfo Property EditorSupport Beans InvocationHandler EventHandler Customizer DesignMode BeanContext Services ExceptionListener PropertyEditor PropertyChange Listener Visibility EventListener Property EditorManager AppletInitializer VetoableChange Listener Event ListenerProxy PropertyChange ListenerProxy Vetoable ChangeSupport VetoableChange ListenerProxy Property ChangeSupport SwingProperty ChangeSupport javax.swing.event java.util java.lang.reflect java.bean.beancontext
PJV26 3 java.beans Feature Descriptor Bean Descriptor EventSet Descriptor Method Descriptor Parameter Descriptor Property Descriptor IndexedProperty Descriptor Encoder XMLEncoder XMLDecoder Statement Expression Inspector Persistence Delegate DefaultPersistence Delegate EventObject Property ChangeEvent java.util IndexedProperty ChangeEvent 1.5 PropertyVeto Exception java.lang Introspection Exception AutoCloseable java.lang
PJV26 4 java.beans.beancontext DesignMode BeanContext Services Visibility BeanContext ChildSupport java.bean java.util BeanContext Child Collection BeanContext ServicesListener BeanContext ServiceRevokedListener EventListener java.util java.bean BeanContextChild ComponentProxy BeanContext ContainerProxy BeanContext MembershipListener BeanContext Proxy BeanContext ServiceProvider BeanInfo java.bean BeanContext ServiceProviderBeanInfo BeanContext ServicesSupport EventObject BeanContext Event java.util BeanContext MembershipEvent BeanContextService AvailableEvent BeanContextService RevokedEvent BeanContext Support java.bean
PJV26 5 interfejs BeanInfo Má čtyři iconKind atributy public static final int s hodnotami pro CON_COLOR_16x16, CON_COLOR_32x32, CON_MONO_16x16, CON_MONO_32x32 a tyto metody: Image getIcon( int iconKind ) PropertyDescriptor[ ] getPropertyDescriptors( ) MethodDescriptor[ ] getMethodDescriptors( ) EventSetDescriptor[ ] getEventSetDescriptors( ) BeanDescriptor getBeanDescriptor( ) BeanInfo[ ] getAdditionalBeanInfo( ) int getDefaultPropertyIndex( ) int getDefaultEventIndex( ) Třída SimpleBeanInfo implements BeanInfo - avšak metody pouze vracejí null resp. -1.
PJV26 6 třída PropertyChangeSupport Konstruktor: PropertyChangeSupport( Object sourceBean ) metody: void addPropertyChangeListener( String propName, PropertyChangeLi.) void removePropertyChangeListener( String propName, PropertyChang.) void firePropertyChange ( String propName, … oldValue, … newValue ) void fireIndexedPropertyChange ( String propName, int idx, … oldValue, PropertyChangeListener[ ] getPropertyChangeListener ( String propNa ) boolean hasListeners( String propName )
PJV26 7 org.jdesktop.beansbinding PropertyStateListener EventListener java.util BindingListener AutoBinding Abstract Binding Listener Binding Abstract Column Binding JComboBox Binding JList Binding JTable Binding Group Property Object Property Helper Bean Property ELProperty EventObject PropertyState Event java.util ValidatorConverter Bindings Swing Bindings.swingbindings
PJV26 8 Návod k NetBeans Vlastní bean zkompilujte - v adresáři build/classes se vytvoří class/classy. Projects -> project -> Build. Tím se classy zabalí do dist/jar. Při tvorbě aplikace ( v Design modu ) je nutno bean registrovat do palety komponent : Palette -> Beans -> Choose Beans -> Pallete Manager -> Add from JAR -> Install Components to Palette 1.Select JAR File -> Next 2.Select Components -> Next 3.Select Palette Category -> Finish V Design modu lze navazovat vlastnosti ( property ) dvou či více bean – jak vizuálních ( tj. podtříd třídy Component ), tak i nevizuálních. Bean se vkládá do kontejneru a se objeví ve stromu v Inspektoru. JList: ComboBox: elements ( util.List ) JSpinner: