在連續執行webservice調用之後,我的JavaFX應用程序的UI會凍結。這些進程調用是異步的。JavaFX UI凍結掛起
我該如何解決這個問題?有沒有辦法「解凍」UI?
對不起,這個新手問題。但我非常需要任何人的幫助
在連續執行webservice調用之後,我的JavaFX應用程序的UI會凍結。這些進程調用是異步的。JavaFX UI凍結掛起
我該如何解決這個問題?有沒有辦法「解凍」UI?
對不起,這個新手問題。但我非常需要任何人的幫助
您是否創建了一個線程來執行它? 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();
我的用戶界面在JavaFX中,而webservice客戶端和其他類在JavaME中。爲了回答你的問題,在Java中創建了一個線程來執行它。我還需要使用上面發佈的代碼嗎? – cancelledout 2010-04-12 08:57:20
你的線程應該在Java中實現RunnableFuture。在FX中使用MyWebServiceTask啓動它。 – 2010-04-12 09:01:49
這似乎是舊的,異步包似乎在javafx2中被刪除。 – 2013-02-03 15:44:30
它真的是異步嗎?請插入調用服務的代碼的相關部分。您可以嘗試使用NetBeans JavaFX Composer數據源來獲取服務嗎?如果是的話,它也凍結?更多信息將有所幫助。 – 2010-04-12 06:59:52
它是一個移動應用程序,我使用JavaME的webservice客戶端,因爲webservice是SOAP,由於某種原因,JavaFX的web服務功能不會接受基於SOAP的web服務。 – cancelledout 2010-04-12 07:36:41