Java 如何避免拖动手势冲突

Java 如何避免拖动手势冲突,java,swing,drag-and-drop,observer-pattern,Java,Swing,Drag And Drop,Observer Pattern,我正在用Java开发一个带有Swing GUI的棋盘游戏。基本上,我对JScrollPane类进行了子类化,并通过拖动鼠标使其可滚动(DragableScrollPane=DSP)。DSP视图设置为子类JPanel(BoardView=BV) 我有一个MouseAdapter子类在DSP上监听鼠标事件,以捕获鼠标标记的手势==>来平移滚动窗格 我有一个DragGestureListener实现,它监听BV上的鼠标事件,捕捉dragGestureRecognized手势==>以识别何时拖动游戏磁

我正在用Java开发一个带有Swing GUI的棋盘游戏。基本上,我对JScrollPane类进行了子类化,并通过拖动鼠标使其可滚动(DragableScrollPane=DSP)。DSP视图设置为子类JPanel(BoardView=BV)

  • 我有一个MouseAdapter子类在DSP上监听鼠标事件,以捕获鼠标标记的手势==>来平移滚动窗格

  • 我有一个DragGestureListener实现,它监听BV上的鼠标事件,捕捉dragGestureRecognized手势==>以识别何时拖动游戏磁贴,因此可以将其放置在棋盘上的其他位置

问题:BV中的dragGestureRecognized事件覆盖DSP中的mouseDragged事件。当用户拖动游戏磁贴时,这很好,但是当他/她单击并拖动到其他地方时,我希望触发mouseDragged事件来平移视图


谢谢你的阅读

为什么你要自己拖动(在BV上)?实施并设置适当的TransferHandler,让系统整理不同的目标。。