Событие мыши в Java - PullRequest
       34

Событие мыши в Java

2 голосов
/ 17 июня 2010

Я пытаюсь переместить JComponent, скажем, метку над таблицей. Я отслеживаю это событие с помощью метода mouseDragged MouseMotionListener. Этот метод отлично помогает мне отслеживать элемент. Есть способ отследить отпускание мыши после завершения перетаскивания(.ie событие сбрасывания).

 tktLabel1.addMouseMotionListener(new MouseMotionListener()
            {

                public void mouseDragged(MouseEvent arg0)
                {
                    tktLabel1.setBounds(tktLabel1.getX() + arg0.getX(),
                            tktLabel1.getY() + arg0.getY(), width, height);

                }

                public void mouseMoved(MouseEvent arg0)
                {

                }
            });

1 Ответ

4 голосов
/ 17 июня 2010

Есть 2 слушателя событий мыши.MouseMotionListener, который вы уже используете, и MouseListener , который прослушивает такие вещи, как нажатие, отпускание и т. Д.

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

EDIT

При ближайшем рассмотрении кажется, что JList, JTable и JTree требуют немного больше для поддержки перетаскивания.Вам нужно будет внедрить DropTarget , чтобы получать уведомления об этих событиях.

...