在这种情况下如何获得 return 值? (Java 外汇)

How to get return value in this case? (Java FX)

我正在编写一个跨平台应用程序的一部分,我们主要使用 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 class 扩展了应用程序并覆盖了 (void) start 方法,在该方法中我将 window 我想显示的内容放在一起,然后在单击按钮后(如果输入正常)我关闭window.

所以这个想法是 startingMethod 必须等待,直到响应返回(可能 return 有一些默认值,如果用户一分钟没有输入任何东西 - 什么是优雅的的解决方案?)与输入值。这将保证同步。

如果我在 JavaFX class 中使用更多的 REST 或数据库保存,那么当我想在 startingMethod 中使用它们时,我无法确定这些值是否存在(可能不是),它可能是无论如何,解决方案真的很糟糕。

我能做什么?我不太了解 javafx 中的回调方法,这些可以帮助我吗?谢谢!

最后我将 JavaFXClass 移到了资源 class 中。意思是 Resource class extends Application,overrides start,等等。在 doSomethingMethod 中,我在 try-catch 块中调用 launch,如果需要捕获 IllegalStateException 并改为调用 start()(也在 try-catch 块中)。文本字段输入值之后存储在全局变量中。

同样在 start() 方法中我有Platform.setImplicitExit(false); 因此可以多次调用 doSomethingMethod() 而不会出现问题,启动 javaFX window。这不是一个很好的解决方案。