一个BEAN
package beans;import java.awt.*;
import javax.swing.JLabel;
import java.beans.*;public class LabelBean extends JLabel {
 // BorderLayout borderLayout1 = new BorderLayout();
  private String sample = "Sample";
  private PropertyChangeSupport changes=new PropertyChangeSupport(this);
  public LabelBean() {
    try {
      jbInit();
    }
    catch(Exception ex) {
      ex.printStackTrace();
    }
  }
  private void jbInit() throws Exception {
    //this.setLayout(borderLayout1);
  }
  public String getSample() {
    return sample;
  }
  public void setSample(String sample) {
   // this.sample = sample;
   String oldSample=this.sample;
   setText(sample);
   changes.firePropertyChange("sample",oldSample,sample);  }
  public void addPropertyChangeListener(PropertyChangeListener l)
  {
    changes.addPropertyChangeListener(l);
  }
  public void removePropertyChangeListener(PropertyChangeListener l)
  {
    changes.removePropertyChangeListener(l);
  }
}

解决方案 »

  1.   

    第二个BEAN
    package beans;import java.awt.*;
    import javax.swing.JTextField;
    import java.beans.*;
    import java.util.*;
    import java.awt.event.*;public class TextBean extends JTextField {
     // BorderLayout borderLayout1 = new BorderLayout();
    private String showText;
     private PropertyChangeSupport changes=new PropertyChangeSupport(this);
     private transient Vector keyListeners;
      public TextBean() {
        try {
          jbInit();
        }
        catch(Exception ex) {
          ex.printStackTrace();
        }
      }
      private void jbInit() throws Exception {
       // this.setLayout(borderLayout1);
      }
    public String getShowText()
      {
        return showText;
      }
      public void setShowText(String newShowText)
      {
        String oldShowText=showText;
        showText=newShowText;
        setText(showText);
        changes.firePropertyChange("showText",oldShowText,newShowText);
      }
      public void addPropertyChangeListener(PropertyChangeListener l)
      {
        changes.addPropertyChangeListener(l);
      }
      public void removePropertyChangeListener(PropertyChangeListener l)
      {
        changes.removePropertyChangeListener(l);
      }
      public synchronized void removeKeyListener(KeyListener l)
      {
        super.removeKeyListener(l);
        if(keyListeners!=null&&keyListeners.contains(l))
        {
          Vector v=(Vector)keyListeners.clone();
          v.removeElement(l);
          keyListeners=v;
        }
      }
      public synchronized void addKeyListener(KeyListener l)
      {
        super.addKeyListener(l);
        Vector v=keyListeners==null?new Vector(2):(Vector)keyListeners.clone();
        if(!v.contains(l))
        {
          v.addElement(l);
          keyListeners=v;
            }
      }
      protected void fireKeyTyped(KeyEvent e)
      {
        if(keyListeners!=null)
        {
          Vector listeners=keyListeners;
          int count=listeners.size();
          for(int i=0;i<count;i++)
            ((KeyListener)listeners.elementAt(i)).keyTyped(e);    }
      }
      protected void fireKeyPressed(KeyEvent e)
      {
        if(keyListeners!=null)
        {
          Vector listeners=keyListeners;
          int count=listeners.size();
          for(int i=0;i<count;i++)
          ((KeyListener)listeners.elementAt(i)).keyPressed(e);
        }
      }    protected void fireKeyReleased(KeyEvent e)
        {
          if(keyListeners!=null)
          {
            Vector listeners=keyListeners;
            int count=listeners.size();
            for(int i=0;i<count;i++)
              ((KeyListener)listeners.elementAt(i)).keyReleased(e);
          }
        }}
      

  2.   

    报的错误是at beans.Bean2.main(Bean2.java:46)
    第46行是 new Bean2();