DataFlavors между 2 JTrees (Java)
Может ли кто-нибудь помочь мне разрешить DataFlavor из одного дерева в другое? Я следовал нескольким учебникам, и у меня есть перетаскивание, работающее внутри двух деревьев, однако я хотел бы иметь возможность перетаскивать их между собой.
Это та часть, которая вызывает исключение в моем переопределенном методе importData;
try {
Transferable t = support.getTransferable();
nodes = (MyNode[])t.getTransferData(nodesFlavor);
} catch(UnsupportedFlavorException ufe) {
System.out.println("UnsupportedFlavor: " + ufe.getMessage());
} catch(java.io.IOException ioe) {
System.out.println("I/O error: " + ioe.getMessage());
}
Исключение брошено;
UnsupportedFlavor: application / x-java-jvm-local-objectref
Любая помощь будет принята с благодарностью.
Ура,
Shaun
1 ответ
Вам нужно реализовать кастом TransferHandler
, Из учебника Java,
Список, таблица и дерево не поддерживают удаление по умолчанию. Причина этого заключается в том, что не существует универсального способа справиться с падением этих компонентов.... Хотя Swing не может обеспечить реализацию по умолчанию для этих компонентов, платформа для отбрасывания есть. Вам нужно только предоставить пользовательский TransferHandler, который управляет фактическим импортом данных. "
Если вы экспортируете только имена узлов дерева в виде строк, это должно быть довольно просто. Смотрите остальную часть этого руководства для получения информации о том, как это сделать. Если вы пытаетесь экспортировать объект, вам нужно будет создать свой собственный Transferable
реализация тоже.