这是我的代码。
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的数据。 我该如何解决这个问题?
答案 0 :(得分:0)
您需要在名为EDT的特殊单独线程上执行所有与UI相关的内容(JFrame创建等)。请查看文档:{{3}}。