мышь нажата-> перетащите-> отпущена. в Яве - PullRequest
1 голос
/ 17 ноября 2011

Извините:

Я просто не знаю, как связать эти последовательные операции?

Мышь нажмите и затем перетащите, а затем отпустите.Если пользователь не выполняет эту операцию, какое-либо действие не произойдет ...

Должен ли я добавить код, поскольку он уже нажат, чтобы различить это?

Константа MOUSE_MOVED не работаетпоскольку Eclipse сказал мне, что не знает об этом, хотя я нахожу параметр в mouse mouse api

Я не знаю, что происходит ... Пожалуйста, помогите!

Ответы [ 2 ]

6 голосов
/ 17 ноября 2011

Реализация MouseInputListener с использованием подкласса MouseInputAdapter и обработка событий mousePressed, mouseDragged и mouseReleased.

Ознакомьтесь с этим учебным пособием для примеров.

0 голосов
/ 20 декабря 2016

Вот простой класс, который инкапсулирует обнаружение перетаскивания:

public abstract static class MouseDragListener {
    java.awt.Component component;
    MouseEvent dragStart;

    public MouseDragListener(java.awt.Component component) {
        super();
        this.component = component;
        component.addMouseMotionListener(new MouseAdapter() {
            public void mouseMoved(MouseEvent e) {

                dragStart = null;
            }

            public void mouseDragged(MouseEvent e) {
                if (dragStart == null)
                    dragStart = e;
            }
        });
        component.addMouseListener(new MouseAdapter() {
            public void mouseReleased(MouseEvent e) {
                if (dragStart != null) {
                    dragReleased(dragStart, e);
                }
            }
        });
    }

, а затем использует:

new MouseDragListener(center){
    void dragReleased(MouseEvent start,MouseEvent end){
           //  do something ...
    }
}
...