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);
}
}
}