2016-03-24 7 views
1

私は以下のようにJavaでループを実行しているプログラムを開発しました。特定の条件でループ内で別のJava GUIプログラムを呼び出す

int i; 
for (i=0; i<10; i++) 
{ 
    if(i==2) 
    { 
     call A GUI of another program (written in JAVA) 
     sleep(20000); // make it sleep for 20 sec. 
    } 

    // calling a MATLAB file, which itself passing some parameters to a software PowerWorld 
} 

プログラムだけでないときi = 2後、そのすべての10個のインスタンスを実行した後、GUIプログラムを起動することを問題。私はJava GUIプログラムで利用可能ないくつかの他のアクションを実行したい。私はi = 2のときに別のスレッド(Javaマルチスレッド)を呼び出そうとしました。

if (i==2) 
{ 
    MyRunnable myRunnable = new MyRunnable(10); 
    Thread t = new Thread(myRunnable); 
    t.start();     
    try { 
     Thread.sleep(20000); 
    } 
    catch (InterruptedException ie) { }  
} 

そして、新しいMyRunnableクラスを作成しました:誰かが問題を解決するために私を助けることができれば、私はそれを感謝

public class MyRunnable implements Runnable { 
    private int var; 
    public MyRunnable(int var) { 
     this.var = var; 
    } 

    public void run() { 
     String[] args = {}; 
     guiprog2.main(args); //A GUI of Program2 that needs to be invoked 
    } 
} 

答えて

0

どのスレッドでループを実行していますか?他のGUIプログラムは、呼び出しプロセスと同じプロセスで実行されています。両方が同じスレッドでレンダリングされていると仮定すると、ループがレンダリングスレッドで実行されている場合、2番目のプログラムはレンダリングできません。なぜguiprog2を別のプロセスで実行しないのですか?

関連する問題