2013-09-16 117 views
3

我很确定这是JavaFX剪贴板中的一个错误,但我想确保我没有做一些愚蠢的事情。我编程放置纯文本上到剪贴板使用以下代码: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 

使记事本++显示行结束确认在前两个示例中行结束正在加倍。在它上面运行一个调试器后,显示该字符串在放入ClipboardContent之后没有问题,但之后我停止了跟踪。

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

+0

我有完全一样的问题。您在此期间找到了解决方案吗? – Guido

回答

1

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

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