gpt4 book ai didi

java - 如何从命令提示符读取 java swing 线程、事件完成状态

转载 作者:行者123 更新时间:2023-12-02 04:48:44 26 4
gpt4 key购买 nike

我的应用程序是基于 java swing 技术开发的,我们正在尝试使用基于 Windows 和 dll 的商业工具对其进行自动化,但该工具无法等到所有 swing 事件/工作线程完成处理...我有在进行下一个操作之前需要读取并监视我的应用程序线程/事件进程完成状态吗?

请帮助我编写一些示例代码,以便从命令提示符下的另一个 jar/中读取 swing 应用程序进程

简单来说,如何从另一个java程序读取java swing应用程序线程/进程完成状态?我们正在使用github.com/vivekprahlad/frankenstein自动化我们的应用程序...关于如何启动应用程序和执行测试的文档非常少...

我是 Eclipse 和 Java 程序的中级...我们所尝试的只是使用 Frankenstein 自动化单元测试用例..需要有关如何从示例代码开始的帮助... 1.如何从 Frankenstein 启动我的应用程序,我的应用程序将从一个bat文件启动,我将“com.thoughtworks.frankenstein.application.PipingMain com.abc.app.tone.all.Launcher”添加到bat文件中,以便弗兰肯斯坦录音机将打开并能够记录操作。但想在eclipse中编写一个测试并执行..

最佳答案

一种方法是使您的 SwingWorker 后台任务可单独测试。使用这个example ,在 done() 的实现中设置适当的 exit() 状态。在下面的示例中,如果计算的值在定义的容差范围内,则代码将被标记为成功,按照惯例 0

命令行:

$ java -cp build/classes Test ; echo $?1.41421356237309510

Code:

import java.util.List;
import javax.swing.SwingWorker;

public class Test {

/** @see https://stackoverflow.com/a/4637725/230513 */
private static class TwoWorker extends SwingWorker<Double, Double> {

private static final int N = 5;
double x = 1;

@Override
protected Double doInBackground() throws Exception {
for (int i = 1; i <= N; i++) {
x = x - (((x * x - 2) / (2 * x)));
setProgress(i * (100 / N));
publish(x);
}
return x;
}

@Override
protected void process(List<Double> chunks) {
for (double d : chunks) {
//…
}
}

@Override
protected void done() {
System.out.println(x);
System.exit((Math.abs(x - Math.sqrt(2))) < 0.00001 ? 0 : 1);
}
}

public static void main(String[] args) {
new TwoWorker().execute();
}
}

关于java - 如何从命令提示符读取 java swing 线程、事件完成状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29448581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com