Van icon

JAVA PropertyChange

Links


    //JAVA <
    package propertyChange;

    public class CONSTANTES {
        public  static final  String PROPIEDAD_A_COMPROBAR_SI_CAMBIA="Click";
    }



    //JTEXTFIELD JTextField_PC_Avisador

    package propertyChange;

    import java.beans.PropertyChangeEvent;
    import java.beans.PropertyChangeListener;
    import javax.swing.JCheckBox;
    import javax.swing.JTextField;


    public class JTextField_PC_Avisador extends JTextField{

    private final PropertyChangeListener MiEscuchador;
    private String texto = "Componente que avisa";

    public JTextField_PC_Avisador() {
        
        this.setText("Componente que avisa");
        this.MiEscuchador = new PropertyChangeListener(){
            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                seHaCambiadoTexto();
            }
             
        };
    
    }
    
    private void seHaCambiadoTexto(){
        String nuevo = "Algo ha cambiado";
        //el metodo está por heredar de JTexTField que es un Component, el metodo es te esta ultima clase
        this.firePropertyChange(CONSTANTES.PROPIEDAD_A_COMPROBAR_SI_CAMBIA, this.texto,nuevo);
        this.texto = nuevo;
    }
    
}



    //Escuchador
    package propertyChange;

    import java.beans.PropertyChangeEvent;
    import java.beans.PropertyChangeListener;
    import javax.swing.JTextField;


    public class JTextField_PropertyChange extends JTextField{
    
    private JTextField_PC_Avisador AA_componenteEscucho = null; //a quien escuchamos
    PropertyChangeListener MiEscuchador = null;

    public JTextField_PropertyChange() {
        this.setText("Escuchando");
        this.MiEscuchador = new PropertyChangeListener(){
            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                CambioPropiedad();
            }
        };
        
    }
    
    private void CambioPropiedad() {
            this.setText("Cambiado "+Math.random()*100);
    }

    public JTextField_PC_Avisador getAA_ComponenteEscucho() {
        return AA_componenteEscucho;
    }

    public void setAA_ComponenteEscucho(JTextField_PC_Avisador componenteEscucho) {
        if(this.AA_componenteEscucho != null) this.AA_componenteEscucho.removePropertyChangeListener(this.MiEscuchador);
        this.AA_componenteEscucho = componenteEscucho;
        
        if (this.AA_componenteEscucho != null) {
            this.AA_componenteEscucho.addPropertyChangeListener(this.MiEscuchador);
        }
    }
    
    
}