我似乎无法在任何地方找到我的问题的答案。是否有任何事件侦听器可以检测布尔值或其他变量的变化,然后对其采取行动。或者是否可以创建自定义事件侦听器来检测这一点?
请我似乎无法在任何地方找到解决方案,我发现这个网站 http://www.exampledepot.com/egs/java.util/CustEvent.html解释如何创建自定义事件
Use 属性更改支持 http://docs.oracle.com/javase/6/docs/api/java/beans/PropertyChangeSupport.html。您不必实现那么多,而且它是线程安全的。
public class MyClassWithText {
protected PropertyChangeSupport propertyChangeSupport;
private String text;
public MyClassWithText () {
propertyChangeSupport = new PropertyChangeSupport(this);
}
public void setText(String text) {
String oldText = this.text;
this.text = text;
propertyChangeSupport.firePropertyChange("MyTextProperty",oldText, text);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(listener);
}
}
public class MyTextListener implements PropertyChangeListener {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getPropertyName().equals("MyTextProperty")) {
System.out.println(event.getNewValue().toString());
}
}
}
public class MyTextTest {
public static void main(String[] args) {
MyClassWithText interestingText = new MyClassWithText();
MyTextListener listener = new MyTextListener();
interestingText.addPropertyChangeListener(listener);
interestingText.setText("FRIST!");
interestingText.setText("it's more like when you take a car, and you...");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)