我正在编写跨平台应用程序的一部分,我们主要使用REST(jersey)和Hibernate在系统之间进行通信。我是JavaFX的新手,但我的程序部门应该使用它来获取用户的输入值。以下是代码流的外观:
public class startingClass{
...
public void startingMethod(Payload payload){
//send REST requests to different places with different payloads, like:
Response response = Utility.sendPostRequest(URI, payload2);
something = response.readEntity(something.class)
//more processing with the returned values
...
}}
在我发送请求的其中一个地方:
@Path("something")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON + ";charset=UTF-8")
public class Resource{
...
@POST
@Path(something)
public Response doSomething(Payload payload) {
//show JavaFX window with text fields and an okay button
JavaFXClass.launch(JavaFXClass.class);
/* THIS IS WHERE I would need to get back the input values somehow */
//payload3 has the input values I need to send back
return Response.entity(payload3).build();
}}
JavaFX类扩展了应用程序,并覆盖了(void)start方法,我将要显示的窗口放在一起,单击按钮后(如果输入正常)我关闭窗口。
所以我的想法是,startMethod必须等待,直到响应返回(可能返回一些默认值,如果用户没有输入任何东西一分钟 - 那么优雅的解决方案是什么?)输入值。这将保证同步。
如果我在JavaFX类中使用更多REST或数据库保存,那么当我想在startingMethod(可能不是)中使用它时,我无法确定值是否存在,并且无论如何它可能是一个非常糟糕的解决方案。
我该怎么办?我不太了解javafx中的回调方法,这些可以帮助我吗?谢谢!