Javafx剪贴板双换行

时间:2013-09-16 11:46:53

标签: javafx-2

我相当确定这是JavaFX剪贴板中的一个错误,但我想确保我没有做一些愚蠢的事情。我使用以下代码以编程方式将纯文本放在剪贴板上:

Clipboard clipboard = Clipboard.getSystemClipboard();
ClipboardContent content = new ClipboardContent();
//String test = "1" + System.lineSeparator() + "2"; //Example 1 - Two lines
//String test = "1\r\n2"; //Example 2 - Two lines
String test = "1\n2"; //Example 3 - One line
content.putString(test);
clipboard.setContent(content);

示例1和2在粘贴后生成此文本

1

2

示例3在粘贴(如预期)

后产生此文本
1
2 

制作记事本++显示行结束确认在前两个示例中,行结尾被加倍。在它上面运行一个调试器显示String在被放入ClipboardContent之后很好,但之后我就停止了它。

这一切都在Windows 8上(运行代码和粘贴操作)。我的结论是,在系统的某个深处,它检测到对窗口行结尾的需要,并在粘贴发生之前将\ r和\ n中的每一个转换为\ r \ n。

1 个答案:

答案 0 :(得分:1)

我用一个简单的replaceAll解决了这个问题:

final ClipboardContent content = new ClipboardContent();
content.putString(str.replaceAll("\r\n", "\n"));