如何检测jface对话框的位置?

时间:2016-02-24 09:53:08

标签: dialog mouse drag rcp

我希望检测鼠标拖动TitleAreaDialog。所以我尝试将“DragDetectListener”和“MouseListener”添加到对话框的shell中。我发现当我拖动此对话框时,它不会调用此侦听器。我也尝试将“SWT.DragDetect”添加到shell.getDisplay()中,但这没有帮助。

之前是否有人添加此侦听器?

shell.addDragDetectListener(new DragDetectListener() {

  @Override
  public void dragDetected(DragDetectEvent e) {
    System.out.println("dragDetected-------------");
  }
});

1 个答案:

答案 0 :(得分:0)

移动对话框不会触发拖放事件。

您可以使用ControlListener来了解移动和调整事件的大小:

newShell.addControlListener(new ControlListener()
  {
    @Override
    public void controlResized(final ControlEvent e)
    {
      // Resized
    }


    @Override
    public void controlMoved(final ControlEvent e)
    {
      // Moved
    }
  });

请注意,在移动对话框结束时,您只能进行一次controlMoved调用。