パフォーマンスとチューニングに関連する機能のために、ネットワークデバイスと統合されたアプリケーションがあります。JavaFxでUIが応答しない
私はJavaFxを使用しています。ネットワークデバイスに接続してログインすると、UIの「応答しません」という応答が表示されます。
どのように問題を解決するかを提案できます。 Login screen shows not respongding
パフォーマンスとチューニングに関連する機能のために、ネットワークデバイスと統合されたアプリケーションがあります。JavaFxでUIが応答しない
私はJavaFxを使用しています。ネットワークデバイスに接続してログインすると、UIの「応答しません」という応答が表示されます。
どのように問題を解決するかを提案できます。 Login screen shows not respongding
プログラムはネットワークデバイスに接続しており、UIは同じThread
で実行されているため、UIは応答しません。ネットワークデバイスを接続するには、新しいThread
を開始する必要があります。 UIとネットワークデバイスへの接続が2つの異なるスレッドにある場合、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「私たちはスレッドに入れられない複数の方法でネットワークデバイスに複数のコマンドを送信しています。何故なの? –