2013-09-16 4 views
3

Я уверен, что это ошибка в буфере обмена JavaFX, но я хочу убедиться, что я не делаю что-то глупое. Я программно размещение простого текста на буфер обмен, используя следующий код:Javafx clipboard double newlines

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 (рабочий код и операция вставки). Я пришел к выводу, что где-то в глубине системы обнаруживается необходимость в концах окон Windows и конвертируется каждый из \ r и \ n в \ r \ n непосредственно перед тем, как происходит паста.

+0

У меня точно такая же проблема. Вы нашли решение тем временем? – Guido

ответ

1

Я решил эту проблему с помощью простого replaceAll, как это:

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