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 реализация тоже.

Другие вопросы по тегам