JTextArea不显示输出的每一行

时间:2014-07-19 08:56:38

标签: java eclipse swing jscrollpane jtextarea

晚上好! 所以我试图将一个正在运行的进程列表输出到JTextArea。 附加任务列表的代码片段是:

try {
        String line;
        Process p = Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe");
        BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
        while ((line = input.readLine()) != null) {
            System.out.println(line);
            area.append(line);
            area.append("\n");
        }
        input.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

这有效,但在显示几个进程后停止。 输出窗口如下所示: jtextarea appending tasklist

注意:当您将try catch输出到控制台时,它会显示所有进程。那可能是什么错? (我显然遗漏了一些非常愚蠢的东西) 谢谢大家的推荐!

1 个答案:

答案 0 :(得分:1)

在您的情况下,问题是它不能在JTextArea中提供水平或垂直侧边滚动。因此,您的输出无法处理应该正确显示的额外输出。

有趣的是,按照你的setBounds()方法,我的JTextArea会返回完美的输出 - 类似于在控制台中显示的那个!!!此外,它对你的输出没有任何问题!问题似乎只出现在你的代码中没有的卷轴!

尝试这个,我希望它有所帮助: -

scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setBounds(5,25,972,500);
scrollPane.add(textarea);
scrollPane.setViewportView(textarea);

如果它没有帮助,请发表评论。我希望它能解决您的问题。

祝福......