различая перетаскивание и выбор в JTextArea Java - PullRequest
1 голос
/ 22 июля 2011

В моем Java-приложении есть несколько JTextAreas, которые пользователь может перемещать.Я достигаю этого, добавляя к нему прослушиватель перетаскивания мышью.

  public void mouseDragged(MouseEvent e) {
    int deltaX = e.getXOnScreen() - screenX;
    int deltaY = e.getYOnScreen() - screenY;

    setLocation(myX + deltaX, myY + deltaY);
  }

У меня проблема с разграничением, когда пользователь хочет выделить текст внутри JTextArea и когда он хочет перетащить его.Есть идеи?

Ответы [ 3 ]

2 голосов
/ 22 июля 2011

Я бы использовал модификатор, например control e.isControlDown(), или другую кнопку мыши для перетаскивания компонента.

1 голос
/ 23 июля 2011

Используйте viewToModel (), чтобы получить позицию каретки нажатой точки. Проверьте, находится ли позиция каретки между getSelectionStart () и getSelectionEnd (). Если он находится в выбранном регионе, начните перетаскивание.

1 голос
/ 22 июля 2011

Возможно, вы захотите обработать первую мышь вниз, проверьте, выделен ли текст. Если указатель мыши находится на тексте, тогда установите его в состояние, чтобы идентифицировать его как перетаскивание.

...