我需要帮助。是否可以在不注册组件的情况下模拟拖放?
例如。我在窗口上的任意位置单击鼠标键,然后按住鼠标键,此时,我想使用Java以编程方式创建或模拟DragSourceEvent
。
这可能吗?
更新:
关于Bob的回复,至少我明白了,我可以为拖放创建一个监听器:
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 ));
但不幸的是我得到了这个异常(exception):
有什么建议么?
最佳答案
您提出的问题:
我还没有尝试过,但是从理论上讲,您应该能够创建Event对象,并从一个系统类中获取Swing Event Queue的句柄。但是,如果没有有效的组件,则方法尝试使用该事件时可能会出现问题。
您可能是什么意思:
为标准窗口注册事件-您应该能够为空的JPanel或JFrame设置拖放支持,但这会带来一些麻烦。在没有内置的情况下,在此级别上使用拖放操作会很痛苦-我建议您使用不可见的组件之类的东西来代替。
关于java - 挥杆拖曳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1785822/