1

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

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

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

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

4

1 回答 1

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.
            }
        });
    }
}

这应该让你开始走上正确的道路。

也可以看看

于 2013-03-04T17:34:42.517 回答