Я пытаюсь переместить элемент из одного приложения JavaFX в другое с помощью перетаскивания, насколько я понимаю, это не должно быть проблемой.
Итак, у меня есть объект класса и перетащитеэто из одного приложения в другое, а затем распечатать его содержимое на консоли.В основном это выглядит неплохо, я могу опустить «принятый» или «не принятый», поиграв с режимами передачи, что показывает мне, что сам механизм работает.Но когда я помещаю объект в другое приложение, на консоль выводятся буквы, которые, как я считаю, в основном китайские.Это, очевидно, некоторая проблема с кодированием, но я не могу понять, что происходит, кроме того факта, что оба приложения в основном используют одну и ту же кодовую базу, «китайские» буквы довольно многочисленны.ToString объекта просто печатает полторы строки латинскими буквами, но после отбрасывания печатается несколько абзацев «китайских» букв.
Может кто-нибудь сказать мне, что здесь происходит?Это просто кодировка?Может ли ОС (Win7 кстати) вмешиваться здесь?Я обнаружил давно потерянную древнюю китайскую мудрость?
Сам код довольно прост, вот код от "отправителя"
setOnDragDetected(event ->
{
Dragboard db = startDragAndDrop(TransferMode.ANY);
ClipboardContent clipboardContent = new ClipboardContent();
clipboardContent.put(DataFormat.PLAIN_TEXT, treeElement.getEntities());
db.setContent(clipboardContent);
System.out.println(db.getContent(DataFormat.PLAIN_TEXT));
event.consume();
});
и здесь от "получателя"
setOnDragDropped(event ->
{
Dragboard db = event.getDragboard();
if (db.hasContent(DataFormat.PLAIN_TEXT))
{
System.out.println(db.getContent(DataFormat.PLAIN_TEXT));
System.out.println("Accept Drop");
}
event.consume();
});
Я просто не вижу ничего, что могло бы объяснить мою ошибку.