{"id":76,"date":"2007-05-09T19:26:00","date_gmt":"2007-05-09T19:26:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=76"},"modified":"2007-05-09T19:26:00","modified_gmt":"2007-05-09T19:26:00","slug":"contact-to-javax-beans-binding","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2007\/05\/contact-to-javax-beans-binding\/","title":{"rendered":"Contact to javax.beans.binding"},"content":{"rendered":"<p>This little example will show you how to bind a JTextField to a name property of a Person with <a href=\"https:\/\/beansbinding.dev.java.net\/\">Beans Binding<\/a> (JSR-295). First the Person:<\/p>\n<pre>package com.tutego.binding;<br \/><br \/>import java.beans.PropertyChangeListener;<br \/>import java.beans.PropertyChangeSupport;<br \/><br \/>public class Person<br \/>{<br \/> private PropertyChangeSupport pcs = new PropertyChangeSupport( this );<br \/><br \/> private String name = \"\";<br \/><br \/> public void addPropertyChangeListener( PropertyChangeListener x )<br \/> {<br \/>   pcs.addPropertyChangeListener( x );<br \/> }<br \/><br \/> public void removePropertyChangeListener( PropertyChangeListener x )<br \/> {<br \/>   pcs.removePropertyChangeListener( x );<br \/> }<br \/><br \/> public String getName()<br \/> {<br \/>   return name;<br \/> }<br \/><br \/> public void setName( String name )<br \/> {<br \/>   String old = getName();<br \/>   this.name = name;<br \/>   pcs.firePropertyChange( \"name\", old, getName() );<br \/>  <br \/>   System.out.println( \"Changed name!\" );<br \/> }<br \/>}<\/pre>\n<p><\/p>\n<p>The code for the JavaBean Person is a litte bit cumbersome because of the PropertyChangeListener who will notify the Binding Framework if the model change.<\/p>\n<pre>package com.tutego.binding;<br \/><br \/>import javax.beans.binding.BindingContext;<br \/>import javax.swing.JFrame;<br \/>import javax.swing.JTextField;<br \/><br \/>public class BindingDemo<br \/>{<br \/> public static void main( String[] args )<br \/> {<br \/>   Person p = new Person();<br \/><br \/>   JTextField tf = new JTextField();<br \/><br \/><strong>    BindingContext bindingContext = new BindingContext();<br \/>   bindingContext.addBinding( p, \"${name}\", tf, \"text\" );<br \/>   bindingContext.bind();<\/strong><br \/>  <br \/>   JFrame f = new JFrame();<br \/>   f.add( tf );<br \/>   f.pack();<br \/>   f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );<br \/>   f.setVisible( true );<br \/><br \/>   p.setName( \"Christian Ullenboom\" );<br \/> }<br \/>}<\/pre>\n<p><\/p>\n<p>Swing on the other side will although notify the model if the user type text in the text field and press Return. This will change the model.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This little example will show you how to bind a JTextField to a name property of a Person with Beans Binding (JSR-295). First the Person: package com.tutego.binding;import java.beans.PropertyChangeListener;import java.beans.PropertyChangeSupport;public class Person{ private PropertyChangeSupport pcs = new PropertyChangeSupport( this ); private String name = &#8222;&#8220;; public void addPropertyChangeListener( PropertyChangeListener x ) { pcs.addPropertyChangeListener( x ); } [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-76","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/76","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=76"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/76\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=76"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=76"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=76"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}