2016-04-22 22 views
0

Javaクラスから別のjavafxクラスをバックグラウンドスレッドとして呼び出しました。Javaクラスからjavafxクラスを呼び出す方法は?

 while(true) 
    { 
    .... 
    .... (build new arguments) 
    .... 

    Thread t = new Thread() { 
     public void run() { 
      ChartData.main(arguments); 
     } 
    }; 
    t.start(); 
    } 

私はエラーを取得する:javafxクラスと

Exception in thread "Thread-7" java.lang.IllegalStateException: Application launch must not be called more than once at om.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:94) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:75) at javafx.application.Application.launch(Application.java:209)

私は唯一の散布を構築してきたし、 すべての私の他のオブジェクトがjavaクラスで達成されています。

ありがとうございました。

答えて

1

これはJavaFXが動作する方法ではありません。

  1. はあなたのプログラムの適切なJavaFXアプリケーション作り、ちょうどあなたの図面、GUI、または任意のコンテンツを更新:

    あなたは、2つのオプションがあります。

  2. スレッドの代わりに、独自のプロセスで個別のJavaFXを実行してください(ProcessBuilderを参照してください)。これはもっときれいですが、プロセスに表示するデータを渡す方法を考えなければなりません。

+0

3番目のオプション:Javaアプリケーションとjavafxアプリケーションの間でローカルネットワーク接続を使用します。 –

+0

ありがとうございました。私が正しく理解したら、javafxクラスを起動する必要があります: 'ProcessBuilder processBuilder = new ProcessBuilder("コマンド "、"最初の引数 "、" TheSecondWithoutSpace "); – Lolitta

関連する問題