我开发了一个程序,在其中运行 Java 循环,如下所示。
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
}
程序仅在运行完所有 10 个实例后才调用 GUI 程序的问题,而不是在 i = 2
后调用 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
}
}
如果有人能帮助我解决这个问题,我将不胜感激。
最佳答案
您在哪个线程上运行循环?另一个 gui 程序与调用进程在同一进程中运行。假设两者都在同一线程上渲染,如果循环在渲染线程上运行,第二个程序将无法渲染。为什么不在单独的进程中运行 guiprog2?
关于java - 在特定条件下循环调用另一个 Java GUI 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36208902/