2010-04-12 5 views
0

웹 서비스 호출을 연속적으로 실행 한 후 JavaFX 응용 프로그램의 UI가 멈 춥니 다. 이러한 프로세스 호출은 비동기입니다.JavaFX UI 고정 중단

이 문제를 어떻게 해결합니까? UI를 "고정 해제"할 수있는 방법이 있습니까?

초보자를위한 질문입니다. 하지만 나에게 누군가의 도움이 절실히 필요합니다.

+0

정말 비동기입니까? 서비스를 호출하는 코드의 관련 부분을 삽입하십시오. NetBeans JavaFX Composer 데이터 소스를 사용하여 서비스를 가져올 수 있습니까? 그렇다면 너무 동결됩니까? 더 많은 정보가 도움이 될 것입니다. –

+0

웹 서비스가 SOAP이기 때문에 JavaME의 웹 서비스 클라이언트를 사용하고 있습니다. JavaFX의 웹 서비스 기능은 SOAP 기반 웹 서비스를 허용하지 않습니다. – cancelledout

답변

2

실행을위한 스레드를 만들었습니까? JavaFX는 EDT (이벤트 발송 스레드)에서 실행됩니다. 그래서 GUI 고정이 발생합니다. 여기에 무엇을합니까

import javafx.async.* 
public class MyWebService extends RunnableFuture { 
    public var webserviceURL:String; 
    override run(): Void { 
    // your web service 
    } 
} 
public class MyWebServiceTask extends JavaTaskBase { 
    override create(): RunnableFuture { 
     return MyWebService { 
     webserviceURL: "http://...." 
     }; 
    } 
} 

def webserviceTask: MyWebServiceTask = MyWebServiceTask { } 
webserviceTask.start(); 
+0

웹 서비스 클라이언트 및 다른 클래스가 JavaME에있는 동안 내 UI는 JavaFX입니다. 귀하의 질문에 대답하기 위해 스레드를 실행하여 Java로 실행합니다. 위에 게시 한 코드를 사용해야합니까? – cancelledout

+0

스레드는 Java에서 RunnableFuture를 구현해야합니다. FX에서 MyWebServiceTask로 시작하십시오. –

+0

이것은 오래된 것 같습니다, 비동기 패키지는 javafx2에서 제거 된 것 같습니다. –