Я хочу делегировать событие "drop" для JList
его родителю (JPanel
) и удалить визуальную обратную связь о сбросе на JList.
Как правильно это сделать?
Я пытаюсь создать объект DropTarget
и поделиться им между JPanel и JList, но это кажется немного хакерским - я не могу понять, что должен делать DropTarget.getComponent()
, и беспокоюсь, что это может сломать .
Можете ли вы посоветовать правильный способ сделать это (в Java 6)?
EDIT:
* Почему я это делаю? *
Я пытаюсь разрешить пользователю размещать элементы в группы (один JPanel + один JList = одна группа) - порядок списка не будет сохранен (и не может быть сохранен из-за некоторых внутренних структур данных), когда элемент сбрасывается на JList
.
Визуальная обратная связь по умолчанию для JList
- это курсор в виде линии, указывающий, где он будет добавлен. Если я использую значение по умолчанию, пользователь будет сбит с толку, когда обнаружит, что элемент добавлен в конец списка, а не там, где указывал курсор.
Чтобы визуальная обратная связь выглядела проще, я делаю это на уровне JPanel (один JPanel для одного JList, некоторое полупрозрачное наложение на список и прочее ...). Естественно, переход к этому JPanel должен также добавить в список. Так ....