何将Java任务标记为失败

时间:2017-04-25 15:04:49

标签: java javafx task

在我的JavaFx应用程序中,我向服务器发送请求,需要等待结果。

以下是执行请求的代码:

private void getData(){
        RequestExecutor requestExecutor = new RequestExecutor();

        Executor exec = Executors.newCachedThreadPool(runnable -> {
            Thread t = new Thread(runnable);
            t.setDaemon(true);
            return t;
        });


        Task<JSONObject> jsonObjectTask = new Task<JSONObject>() {
            @Override
            public JSONObject call() throws Exception {
                return requestExecutor.getObjectFromJsonArray("settings");
            }
        };

        jsonObjectTask.stateProperty().addListener((observableValue, oldState, newState) -> {
            if (newState == Worker.State.SUCCEEDED) {
                statusLabel.setText(jsonObjectTask.getValue().getString("subnet"));
            } else if (newState == Worker.State.FAILED) {
                statusLabel.setText("Incorrect");
            }
        });

        exec.execute(jsonObjectTask);
    }

并且

requestExecutor.getObjectFromJsonArray("settings")

返回json对象,如果连接失败,则返回null。

我想为用户显示一个对话框,以便在没有服务器连接等情况下让他再次重试。

如何将任务标记为失败?或者在请求失败的情况下更新GUI的最佳实践是什么?

0 个答案:

没有答案