現実的にRhinoで実装すっとこんな感じか。
Javaより格段無駄がなくてすっきりするな。

var TextModel = function()
{
  this = new java.beans.PropertyChangeSupport( this );
  var text = "";

  this.getText = function(){ retrun text; }
  this.setText = function( value )
  {
    var old = text;
    text = value;
    this.firePropertyChange( "text", old, text );
  }
}

var modelDependencyAdapter = function( textView, model )
{
 var dependency = {};
 dependency.propertyChange = function( event ) { textView.setText( model.getText() ); };
 return dependency;
}

var model = new TextModel();
text = new JTextField();
model.addPropertyChangeListener( "text", modelDependencyAdapter( text, model ) );
label = new JLabel();
model.addPropertyChangeListener( "text", modelDependencyAdapter( label, model ) );