Текстовое перетаскивание не работает от браузера Chromium в Java Application на Linux, работает с FirefoxLinux

Ответить
Anonymous
 Текстовое перетаскивание не работает от браузера Chromium в Java Application на Linux, работает с Firefox

Сообщение Anonymous »

Я пытаюсь перетаскивать строку таблицы из Google Chrome в приложение Java Swing на Linux, но это не работает. Я также попытался отладки заявки на Java и не получил какого -либо вызова для Drop () или canimportData () или любого другого метода от обработки Java Drop. Тем не менее, такая же операция перетаскивания работает при использовании Firefox. Кроме того: < /p>
перетаскивание от Chrome в GEDIT работает нормально.
перетаскивание из приложения Chrome в Java в Windows работает, как и ожидалось. < /P>

Код: Выделить всё

$DISPLAY
< /code>
показывает: 0,11, значение x11 используется. < /p>
$XDG_SESSION_TYPE
< /code>
не возвращает никакого значения.
У меня также есть хром, установленный отдельно для интеграции JCEF.
Я попытался принудить режим X11, запустив: < /p>
export XDG_SESSION_TYPE=x11
приложение Java с обработчиком Drop:

Код: Выделить всё

import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.DataFlavor;
import java.awt.dnd.*;

public class DragDropSwingApp {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("Drag & Drop Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);

JTextArea textArea = new JTextArea("Drop text here...");
textArea.setFont(new Font("Arial", Font.PLAIN, 16));
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setDropTarget(new DropTarget() {
@Override
public void drop(DropTargetDropEvent dtde) {
try {
dtde.acceptDrop(DnDConstants.ACTION_COPY);
Object data = dtde.getTransferable().getTransferData(DataFlavor.stringFlavor);
textArea.setText(data.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
});

frame.add(new JScrollPane(textArea), BorderLayout.CENTER);
frame.setVisible(true);
});
}
}
HTML -страница для перетаскивания текста:





Drag & Drop Demo

body { font-family: Arial, sans-serif; text-align: center; margin-top: 50px; }
.draggable { padding: 10px; background-color: lightblue; width: 300px; margin: auto; cursor: grab; }



Drag this text into the Java application
Hello from the Web!


document.getElementById("dragText").addEventListener("dragstart", function(event) {
event.dataTransfer.setData("text/plain", event.target.innerText);
});



< /code>
вещи, которые я проверил Обработка: если бы это была проблема JCEF, то перетаскивание из Chrome должно работать, но это не так. < /P>
< /li>
[*] Метод пазы были проблемой Java, метод должен вызвать отладки, но он не получает событие от Chrome. Подозревает, что это может быть связано с обработкой буфера обмена между приложениями Chrome и Java на Linux. Но после установки xclip boopburt at redhat 8 выпуска все еще сохраняется. > Почему перетаскивание терпит неудачу только из Chrome, но работает с Firefox? Аргументы, позволяющие перетаскивать, из всех приложений? >
< /li>
является этой проблемой, связанной с TransferHandler.canimport () < /code> не вызывается при перетаскивании из хрома в Ubuntu (JDK-8299842 ), и есть ли какое -либо известное разрешение для этого?


Любые идеи или предложения отладки будут высоко оценены!

Подробнее здесь: https://stackoverflow.com/questions/794 ... on-on-linu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»