Javafx 2 JavaFX2通知刷新

Javafx 2 JavaFX2通知刷新,javafx-2,partial-page-refresh,Javafx 2,Partial Page Refresh,我在JavaFX2中要求在标题上显示通知。这些通知通过外部系统填充到数据库中 当在数据库中插入新通知时,我的JavaFX应用程序应该侦听该通知并刷新标题 我可以考虑的一个解决方案是实现一个时间表,该时间表触发代码在每个固定时间段检索最新的通知状态一次,可能是每2分钟检索一次 除此之外,还有其他方法可以实现这一目标吗?对此的任何提示都将不胜感激。您可以创建一个新的任务,该任务将侦听(或检查)数据库中的更改。此任务将在不同的线程中运行,以避免阻塞您的UI。一旦发生更改,它就可以更新您的UI 您的代码

我在JavaFX2中要求在标题上显示通知。这些通知通过外部系统填充到数据库中

当在数据库中插入新通知时,我的JavaFX应用程序应该侦听该通知并刷新标题

我可以考虑的一个解决方案是实现一个时间表,该时间表触发代码在每个固定时间段检索最新的通知状态一次,可能是每2分钟检索一次


除此之外,还有其他方法可以实现这一目标吗?对此的任何提示都将不胜感激。

您可以创建一个新的
任务,该任务将侦听(或检查)数据库中的更改。此
任务
将在不同的
线程
中运行,以避免阻塞您的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中调用该方法以更新值。
}
});
}
}
这会让你走上正确的道路

另见
  • ,更具体地说