使用JavaFx8,我有一个发送http请求的按钮。我想禁用此按钮,直到我收到服务器的答复。我的情况如下:
HBox boxRep = new HBox();
...
boxRep.setOnMousePressed((event) ->{
String responseHttpCode = "";
responseHttpCode = MySendHttp(ip, port, request);
...
});
我的方法(MySendhttp)返回具有http代码状态(200,404 ...)的字符串。在服务器应答之前,我不想发送其他请求。
谢谢
最佳答案
在后台线程中的任务中运行它,并在onSucceeded
处理程序中处理响应:
boxRep.setOnMousePressed(event -> {
Task<String> httpTask = new Task<String>() {
@Override
public String call() throws Exception {
return MySendHttp(ip, port, request);
}
};
Thread thread = new Thread(httpTask);
httpTask.setOnSucceeded(e -> {
boxRep.setDisable(false);
String responseCode = httpTask.getValue();
// process...
});
boxRep.setDisable(true);
thread.start();
});