DropTarget
является источником одноадресной передачи, поэтому вы можете добавить к нему не более одного DropTargetListener
. Я считаю, что это должен быть простой объект, который проверяет источник (внутри / снаружи) отбрасываемой вещи и вызывает один из ваших DropTargetListener
s в зависимости от результата.
Edit: Если вы одержимы созданием «универсального» решения, вы можете попробовать создать событие-обертку, которое передает вызовы методов исходному событию, но перехватывает rejectDrop()
, acceptDrop()
(и, возможно, другие методы может вызвать проблемы), а затем передать обертку слушателям, пока кто-нибудь не примет это. Это предполагает, что слушатели распознают «хорошие» события и действуют соответственно.