在JavaFX 2中,我要求在标题上显示通知。这些通知通过外部系统填充到数据库中。
当在数据库中插入新的通知时,我的JavaFX应用程序应该侦听相同的通知并刷新标题。
我能想到的一种解决方案是实现一个时间表,它触发代码每固定时间段检索最新的通知状态一次,可能是每2分钟一次。
除此之外,有没有其他方法来实现这一点呢?任何关于这方面的提示都将不胜感激。
发布于 2013-03-05 01:34:43
您可以创建一个新的Task来监听(或检查)数据库中的更改。此Task将在不同的Thread中运行,以避免阻塞您的UI。一旦发生更改,它就可以更新您的UI。
您的代码可能如下所示:
//... initialize your variables.
task = new DatabaseWatcher();
executor = Executors.newSingleThreadExecutor();
executor.execute(task);和你的DatabaseWatcher:
public class DatabaseWatcher extends Task<Object> {
public DatabaseWatcher() {
//initialize here
}
@Override
protected Object call() throws Exception {
//Get data from database
//if new update :
updateUI();
return null;
}
private void updateUI() {
Platform.runLater(new Runnable() {
@Override
public void run() {
//Set your new values in your UI
//Call the method in your UI to update values.
}
});
}
}这应该会让你走上正确的道路。
另请参阅
https://stackoverflow.com/questions/15206932
复制相似问题