我需要帮助。是否可以在不注册组件的情况下模拟拖放?
例如。我在窗口上的任意位置单击鼠标键,然后按住鼠标键,此时,我想使用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/

10-11 04:20