java - 在我的 GUI (java) 中显示 CMD 输出

标签 java user-interface swing cmd real-time

如何让 CMD 进程的输出显示在我的 GUI 中?这是我用来运行该过程的代码:

try {
    String line;
    Process p = Runtime.getRuntime().exec("cmd /c \"e:\\folder\\someCommands.cmd\"");
    BufferedReader input =
            new BufferedReader(new InputStreamReader(p.getInputStream()));
    while ((line = input.readLine()) != null) {
        System.out.println(line);
    }
    input.close();
} catch (Exception err) {
    err.printStackTrace();
}

我试过这样做:

jLabel1.setText(line);

...但是 GUI 在进程运行时完全锁定,所以直到最后才更新任何内容,这不是很有用。除此之外,CMD 工作正常。我只想实时显示输出。

最佳答案

设置标签文本后是否重绘()?

无论如何,您通常应该对在 GUI 事件线程上执行长时间操作犹豫不决。考虑使用 SwingWorker相反。

关于java - 在我的 GUI (java) 中显示 CMD 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667416/

相关文章:

java - 使用 Jackson 解析 JSON 返回 null

c++ - 如何在 C++ 中更改窗口样式/主题

java - 验证单元格时,JTable 单元格编辑不会更改

jquery - CSS 图像放置方式取决于屏幕分辨率

java - Eclipse for Java Swing 中的结果不一致

java - Java 中使用 toString 和 Equals 方法的多态性对我来说毫无意义?

java - Google Drive API 给予上传文件的权限不足

java - 解析包含日期、时间和偏移量的时间戳

Java JoptionPane 按钮字符串

java - 从数据库中获取年份