Informatics– University of Brawijaya * Swing [part.2] Eriq Muhammad Adams J eriq.adams@ub.ac.id | http://eriq.lecture.ub.ac.id * Specification is in JSR 295. * Is used to synchronized properties between two objects. * Beans binding now fully support matisse GUI Builder (make easier for developer for binding data). * There are binding source and target. * Update strategies: Read/Write, Read-Only, Read-Once * If you want to synchronize properties of two objects but they have different types you have to create Converter. * Use Validator to filter binding’s value from target. * General Data flow Converter Source Target Validator Converter * Extends org.jdesktop.beansbinding.Converter<S,T> to create new Converter. S is source type, and T is target type. * Override convertForward(S value):T to converts a value from the source type to the target type. * Override convertReverse(T value):S to converts a value from the target type to the source type. * Please learn my tutorial at : http://scc-ub.googlecode.com/files/tutorial.photomanager.pdf.zip ,source code available at : http://scc-ub.googlecode.com/files/PhotoManager.zip * To create a new Validator you have to extends org.jdesktop.beansbinding.Validator<T>. T is target type. * Override validate(T value):Validator.Result to define validation procedure. * Example : When several items in Jlist is selected, the JComboBox will automatically populated. If JTextField ‘s value will be changed according to selected item in JComboBox Demo available at http://eriq.lecture.ub.ac.id/files/2011/03/BeansBindingDemo.zip GUI Component GUI Component DragSource DropTarget Transferable (data) * DnD Constants ACTION_NONE -- no action taken ACTION_COPY -- the DragSource leaves the data intact ACTION_MOVE -- the DragSource deletes the data upon successful completion of the drop ACTION_COPY or ACTION_MOVE -- the DragSource will perform either action requested by the DropTarget ACTION_LINK or ACTION_REFERENCE -- a data change to either the source or the destination propagates to the other location * Draggable Component * Flow * Programmatically : use UIManager class. * Non-Programmatically : use --cp:p look_and_feel_jar_path –laf look_and_feel_class_name * Sample code available at http://eriq.lecture.ub.ac.id/files/2011/03/LookAndFeelDemo.zip * Launch4J , Jsmooth, etc is tool to create executable for java apps in windows. * InnoSetup, NSIS, etc is used to create windows installer. * Tools above are free for non-commercial or commercial use. * Launch4j : http://launch4j.sourceforge.net * Jsmooth : http:// jsmooth.sourceforge.net * InnoSetup : http://www.jrsoftware.org/isinfo.php * NSIS : http:// nsis.sourceforge.net * JDIC (JDesktop Integration Component) Project : http://java.net/projects/jdic/ * SwingX (Extended Swing Component) : https://swingx.dev.java.net * SwingLabs : http://swinglabs.org