我們有與網絡設備集成的應用程序用於性能和調整相關功能。UI在JavaFx中沒有響應
我們正在使用JavaFx For UI,當我連接到網絡設備時,登錄並獲得響應UI顯示「Not Responding」。
任何人都可以建議如何超過這個問題。 Login screen shows not respongding
我們有與網絡設備集成的應用程序用於性能和調整相關功能。UI在JavaFx中沒有響應
我們正在使用JavaFx For UI,當我連接到網絡設備時,登錄並獲得響應UI顯示「Not Responding」。
任何人都可以建議如何超過這個問題。 Login screen shows not respongding
由於程序連接到網絡設備並且用戶界面正在同一個Thread
中運行,UI不響應。您需要啓動一個新的Thread
來連接網絡設備。當UI和連接到網絡設備是在兩個不同的線程中時,UI將不會凍結。
class YourThread extends Thread{
public void run(){
// Your code to connect to network device
}
public static void main(String args[]){
YourThread thread = new YourThread();
thread.start();
}
}
通過緩慢和不穩定的通道(比如(但不限於)網絡)完成的任何I/O必然會給出不響應的用戶界面。因此,任何重要的I/O都應該在單獨的線程中完成。
你們中有些人有三種選擇:
是的,我理解,但我們必須有多個命令發送到網絡設備中,我不能把一個*線程*多種方式,您可以在UI組件建議的解決方法..? – user2964628
您可以創建一個彈出窗口(一個新的JavaFX'Scene'),向用戶顯示您的應用程序正在處理登錄。你可以實現一個進度條。然後你把所有的連接代碼放到'Scene'中。連接完成後,該「場景」消失。 – Sky
@ user2964628「我們有多種命令以多種方式發送到網絡設備,而我無法放入一個線程」。爲什麼不? –