Java Swing Drag and Drop с всплывающим диалогом - PullRequest
2 голосов
/ 04 мая 2011

Я хочу следующее поведение в приложении Java Swing:

  1. Пользователь перетаскивает значок.
  2. Пользователю предлагается модальное диалоговое окно, если нужно использовать другие значки.
  3. После того, как пользователь выбирает ДА, НЕТ или ОТМЕНА (или закрывает диалоговое окно), Java начинает работать с (копирование / перемещение) значков (или при отмене / закрытии ничего не делает).

В пределах TransferHandler.canImport() У меня есть видимость цели, но не значка.

В пределах TransferHandler.exportDone() У меня есть видимость для значка, но не для цели падения.

В пределах TransferHandler.importData() у меня есть видимость для обоих, но к тому времени уже слишком поздно, так как, если я выполняю TransferHandler.MOVE, тогда TransferHandler.exportDone() уже удалил значок.

Возможно ли упомянутое выше поведение с использованием Java Swing? Если да, то какую версию JDK / JRE мне нужно использовать и как ее реализовать?

1 Ответ

2 голосов
/ 11 мая 2011

Если вы хотите иметь возможность перетаскивать элементы, а также перемещать / копировать их программно, вам нужно убедиться, что у вас есть правильная модель , которая поддерживает вид .Это означает, что вы не должны кодировать свою бизнес-логику непосредственно в код GUI.Модель должна быть простой и независимой, ориентируясь на реальную задачу управления данными.В вашем случае вам кажется, что вам просто нужно хранить некоторые коллекции объектов и предоставлять методы, которые перемещают / копируют объекты из одной коллекции в другую.Код, который делает это, называется контроллер (MVC - простите, если вы уже знакомы с этим шаблоном).Затем контроллер обновит графический интерфейс, чтобы отразить изменения.Точно так же ваше перетаскивание вызовет действие контроллера, которое выполняет аналогичное действие с моделью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...