2013-09-16 52 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"));