我在javafx中有一个后台线程,根据某些对象字段更改返回另一个对象,我应该根据这个新对象更新UI。 我总是要重复这个。但遗憾的是它只重复了一次! 我不明白为什么。 我的意思是输出是:" id" (只有一次!)
Task<Category> n = new Task<Category>() {
@Override
protected Category call() throws Exception {
final int catNum = iterateAllCat.size();
while (true) {
boolean catDone = false;
System.err.println("id");
for (int i = catNum - 1; i >= 0; i--) {
final Category cat = iterateAllCat.get(i);
if (cat.done) {
break;
}
catDone = true;
if (catDone) {
System.err.println("done");
break;
}
}
return category;
}
}
};
n.valueProperty().addListener(new ChangeListener<Category>() {
@Override
public void changed(ObservableValue<? extends Category> observable, Category oldValue, Category newValue
) {
try {
board.categoryPane(++num);
} catch (NullPointerException n) {
}
}
}
);
Thread t = new Thread(n);
t.setDaemon(true);
t.start();