由于JFrame,进程冻结(或崩溃)

时间:2015-03-28 10:54:08

标签: java swing processbuilder

这是我的代码。

    ProcessBuilder process = new         
    ProcessBuilder(MyPath);
    Process prp1 = process.start();

    final JFrame frmScanner;
    frmScanner = new JFrame();
    frmScanner.setTitle("Updater");
    frmScanner.setResizable(false);
    frmScanner.setBounds(100, 100, 370, 300);
    frmScanner.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


    label1.setBounds(100,50,200,50);
    final JButton startButton = new JButton("Start!!!");
    startButton.setBounds(50, 140, 100, 50);


    JPanel p1 = new JPanel(null);
    p1.setBackground(new Color(255,255,255));

    p1.add(startButton);
    p1.add(stopButton);
    frmScanner.add(p1);
    frmScanner.setVisible(true);

我的流程任务是从项目的硬件收集数据到文本文件。

我测试过并发现文本文件只能收集1KB的数据然后由于frmScanner.setVisible(true)而导致进程挂起;

如果我手动运行该过程,该过程可以收集超过1KB的数据。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您需要在名为EDT的特殊单独线程上执行所有与UI相关的内容(JFrame创建等)。请查看文档:{​​{3}}。