JTextPane和换行符

时间:2013-09-07 22:49:49

标签: java linux swing newline jtextpane

我正在编写一个程序(在某一点上)对另一个本机应用程序进行命令行调用,从该应用程序获取输出,并将其作为String放入JTextPane中。问题是,它似乎没有按照它应该的方式获取换行符。因为我使用的是linux,所以每行都以^M而不是\n结尾。

有没有办法告诉Java寻找那些并在字符串中创建换行符?

private void getSettings() {
    Commander cmd = new Commander();
    settings = cmd.getCommandOutput("hdhomerun_config " + ipAddress + " get /sys/boot");
    settingsTextPane.setText(settings);
}

我最终将输出barfed分成一行并在文本窗格中包裹。

2 个答案:

答案 0 :(得分:1)

我记得Unix为回车符^M显示\r,因此您可以尝试使用String类的replace方法替换它

settingsTextPane.setText(settings.replace('\r', '\n'));

答案 1 :(得分:0)

谢谢大家,我再次浏览了我的代码并意识到我正在一次读取程序中的输出,只是附加了行。我需要在我阅读的每一行的末尾添加一个\ n。如果我错了,请纠正我,但我相信Java会根据您的操作系统自动更正换行符。