【发布时间】:2011-02-13 22:51:51
【问题描述】:
我正在尝试弄清楚如何监听另一个类中的属性更改。以下是我的代码:
ClassWithProperty 有我想听的属性:
public class ClassWithProperty {
private PropertyChangeSupport changes = new PropertyChangeSupport(this);
private int usersOnline;
public int getUsersOnline() {
return usersOnline;
}
public ClassWithProperty() {
usersOnline = 0;
while (usersOnline<10) {
changes.firePropertyChange("usersOnline", usersOnline, usersOnline++);
}
}
public void addPropertyChangeListener(
PropertyChangeListener l) {
changes.addPropertyChangeListener(l);
}
public void removePropertyChangeListener(
PropertyChangeListener l) {
changes.removePropertyChangeListener(l);
}
}
主要是我需要了解属性更改的地方:
public class Main {
private static ClassWithProperty test;
public static void main(String[] args) {
test = new ClassWithProperty();
test.addPropertyChangeListener(listen());
}
private static PropertyChangeListener listen() {
System.out.println(test.getUsersOnline());
return null;
}
}
我只在最后一次触发了事件 (usersOnline=10)。 我是 Java 新手,试图找到解决方案,但无济于事。
【问题讨论】:
-
可能与您的问题无关,但是您的代码中的一个问题是您在每次循环迭代时将 usersOnline 增加了两次。 ++ 只使用一次。
-
是的,我的错误,但问题仍然存在。谢谢;)
标签: java