Javafx 2 JavaFX2通知刷新
我在JavaFX2中要求在标题上显示通知。这些通知通过外部系统填充到数据库中 当在数据库中插入新通知时,我的JavaFX应用程序应该侦听该通知并刷新标题 我可以考虑的一个解决方案是实现一个时间表,该时间表触发代码在每个固定时间段检索最新的通知状态一次,可能是每2分钟检索一次Javafx 2 JavaFX2通知刷新,javafx-2,partial-page-refresh,Javafx 2,Partial Page Refresh,我在JavaFX2中要求在标题上显示通知。这些通知通过外部系统填充到数据库中 当在数据库中插入新通知时,我的JavaFX应用程序应该侦听该通知并刷新标题 我可以考虑的一个解决方案是实现一个时间表,该时间表触发代码在每个固定时间段检索最新的通知状态一次,可能是每2分钟检索一次 除此之外,还有其他方法可以实现这一目标吗?对此的任何提示都将不胜感激。您可以创建一个新的任务,该任务将侦听(或检查)数据库中的更改。此任务将在不同的线程中运行,以避免阻塞您的UI。一旦发生更改,它就可以更新您的UI 您的代码
除此之外,还有其他方法可以实现这一目标吗?对此的任何提示都将不胜感激。您可以创建一个新的
任务,该任务将侦听(或检查)数据库中的更改。此任务
将在不同的线程
中运行,以避免阻塞您的UI。一旦发生更改,它就可以更新您的UI
您的代码可能如下所示:
//... initialize your variables.
task = new DatabaseWatcher();
executor = Executors.newSingleThreadExecutor();
executor.execute(task);
和您的数据库观察者
:
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.
}
});
}
}
公共类DatabaseWatcher扩展任务{
公共数据库观察者(){
//在这里初始化
}
@凌驾
受保护对象调用()引发异常{
//从数据库获取数据
//如果有新的更新:
updateUI();
返回null;
}
私有void updateUI(){
Platform.runLater(新的Runnable(){
@凌驾
公开募捐{
//在UI中设置新值
//在UI中调用该方法以更新值。
}
});
}
}
这会让你走上正确的道路
另见
- ,更具体地说