Potrzebuję pomocy. Czy można symulować upuszczenie kropli & bez rejestracji komponentu?
E.g. Klikam klawisz myszy w dowolnym miejscu okna i przytrzymuję przycisk myszy w tym momencie, chcę programowo utworzyć lub symulować DragSourceEvent
z Javą.Drag & Drop with swing
Czy to możliwe?
Aktualizacja:
Odnośnie odpowiedzi Boba, przynajmniej mam go, mogę stworzyć słuchacza do przeciągania & spadku:
DragSource dragSource = new DragSource();
DragGestureListener listener = new DragGestureListener() {
public void dragGestureRecognized(DragGestureEvent event) {
event.startDrag (null, strSel) ;
...
}
}
listener.dragGestureRecognized(new DragGestureEvent(
new DragGestureRecognizer(dragSource, component) {
}, DnDConstants.ACTION_COPY, new Point(0,0), events));
ale niestety ja dostać ten wyjątek:
java.lang.IllegalArgumentException: Działania źródłowe pod adresem java.awt.dnd.DragSour ceContext. (DragSourceContext.java:169) w java.awt.dnd.DragSource.createDragSourceContext (DragSource.java:454) w java.awt.dnd.DragSource.startDrag (DragSource.java:293) w java.awt.dnd.DragSource.startDrag (DragSource.java:403) na java.awt.dnd.DragGestureEvent.startDrag (DragGestureEvent.java:203)
jakieś sugestie?
Dlaczego jednak nie chcesz rejestrować komponentu? Tak, możliwe jest wywoływanie wszystkich właściwych interfejsów API, ale równie dobrze można zarejestrować komponent i uczynić go niewidocznym itp. – bguiz