我在 JavaFX 2 中要求在标题上显示通知。这些通知通过外部系统填充到数据库中。
当在数据库中插入新通知时,我的 JavaFX 应用程序应该监听并刷新标题。
我可以考虑的一种解决方案是实现一个时间线,该时间线触发代码以每固定时间段检索一次最新通知状态,可能是每 2 分钟一次。
除此之外,还有其他方法可以实现吗?对此的任何提示将不胜感激。
我在 JavaFX 2 中要求在标题上显示通知。这些通知通过外部系统填充到数据库中。
当在数据库中插入新通知时,我的 JavaFX 应用程序应该监听并刷新标题。
我可以考虑的一种解决方案是实现一个时间线,该时间线触发代码以每固定时间段检索一次最新通知状态,可能是每 2 分钟一次。
除此之外,还有其他方法可以实现吗?对此的任何提示将不胜感激。
您可以创建一个新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.
}
});
}
}
这应该让你开始走上正确的道路。