java - 在特定条件下循环调用另一个 Java GUI 程序

标签 java multithreading matlab

我开发了一个程序,在其中运行 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/

相关文章:

java - 如何将RequestParam值作为URL

java - 使用spring data 1.4.1.RELEASE的MongoDB 3.0连接和认证

java - 监控流程输出及其执行的最佳方法

c# - Windows窗体应用程序-缓慢/无响应的UI

matlab - pcolor 图上的第二个 y 轴

java - 在 Netbeans 中安装 SwingX

java - 如何设置我的项目以使用 Spring 3.2.4 版本运行集成测试?

ios - 核心数据将 objectID 传递给另一个线程

python - 在Matlab中将数组保存为bin,将其传递给Python并在Python中读取bin文件

matlab - 使用 SVM 算法在 matlab 中进行拇指识别