Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JTree Drag & Drop 
:(
    Опции темы
skif18
Дата 21.1.2011, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 358
Регистрация: 17.5.2007
Где: Молдова, Кишинев

Репутация: 1
Всего: 1



Код

    jTree.setShowsRootHandles(true);
            jTree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION );
            jTree.setDragEnabled(true);
           jTree.setDropMode(DropMode.ON_OR_INSERT);


            jTree.setTransferHandler(new FSTransfer());  


Код

import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.io.File;
import java.util.Iterator;
import java.util.List;

import javax.swing.JComponent;
import javax.swing.TransferHandler;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

import org.jdesktop.swingx.JXTree;

public class FSTransfer extends TransferHandler {
    
      public boolean importData(JComponent comp, Transferable t) {
        if (!(comp instanceof JXTree)) {
          return false;
        }
        if (!t.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
          return false;
        }
       
        JXTree tree = (JXTree) comp;
        DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
        try {
          List data = (List) t.getTransferData(DataFlavor.javaFileListFlavor);
          Iterator i = data.iterator();
          while (i.hasNext()) {
            File f = (File) i.next();
            root.add(new DefaultMutableTreeNode(f.getName()));
          }
          model.reload();
          return true;
        } catch (Exception ioe) {
          System.out.println(ioe);
        }
        return false;
      }
      
      public int getSourceActions(JComponent comp) {
         return MOVE;
         } 
      public Transferable createTransferable(JComponent comp) {
//         of course, you'd return something more meaningful here,
//         like perhaps the text of the selected item
        return new StringSelection("foo");
        }
}


Не разрешает перетаскивание узлов. Только выделение. В чем может быть проблема?
Что делаю не так?

Это сообщение отредактировал(а) skif18 - 21.1.2011, 12:24


--------------------

PM MAIL ICQ   Вверх
mgarin
Дата 21.1.2011, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 19.8.2009
Где: Санкт-Петербург

Репутация: 2
Всего: 3



Как минимум потому, что у вас не расширен метод canImport хотя бы до такого:
Код
        public boolean canImport ( TransferHandler.TransferSupport info )
        {
            return true;
        }


Т.е., могу предположить что дерево запрещает любой импорт перетаскиваемых объектов.

Ну и... Вы из файловой системы вставки списка файлов ожидаете?
Если да, то к чему вот этот кусок:
Код
      public Transferable createTransferable(JComponent comp) {
//         of course, you'd return something more meaningful here,
//         like perhaps the text of the selected item
        return new StringSelection("foo");
        }

Если вам ничего экспортировать из дерева не надо - возвращайте тут просто null
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0765 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.