2010-12-14 73 views
6

Tôi muốn phát hiện di chuyển chuột, trong khi nhấn nút trái.Làm thế nào để phát hiện chuột di chuyển trong khi nút trái xuống?

Tôi chỉ cần tạo một ứng dụng vẽ. Tôi có thể phát hiện di chuyển chuột mà không cần nhấn chuột nào. Nhưng tôi muốn phát hiện VỚI chuột trái được nhấn.

Tôi nghĩ rằng không có bất kỳ người nghe nào cho điều này. Vì vậy, ý tưởng để làm điều đó là gì?

Trả lời

5

có phương pháp mouseDragged trong MouseMotionListener ... kiểm tra this ra để biết thêm chi tiết ...

+4

@Stephen P, tôi vô tình bỏ phiếu bình luận của bạn vì tôi đã đọc sai. Hoàn toàn không cần tóm tắt API ở đây. Đó là một sự lãng phí thời gian vì đó là những gì API cho. Tất cả các OP cần thiết phải được chỉ đúng hướng. Trong thực tế, chỉ cần đề cập đến các lớp học và phương pháp là một câu trả lời tuyệt vời. Mọi người nên luôn có quyền truy cập vào API để đọc nó để biết chi tiết. – camickr

+0

đồng ý với camickr – hologram

+0

@camickr Thực tiễn tốt là giữ các câu trả lời thường xanh. Điều này có nghĩa là hạn chế liên kết, như một ngày họ có thể phá vỡ và toàn bộ câu trả lời sẽ được tranh luận. Nhìn chung, điều này nên là một bình luận, không phải là một câu trả lời. Đó là "cách ngăn xếp" để làm cho câu trả lời là giải thích, chứ không phải liên kết đến các trang web tham khảo và API. –

-1

Tôi nghĩ rằng có thể có một số loại chuột kéo người nghe, nhưng nếu không ...

Chụp nút chuột xuống và lên các sự kiện. Trong những sự kiện, thiết lập một boolean như leftButtonIsDown = true (trừ khi có đã một số cách dễ dàng để truy vấn đó) và sau đó trong các sự kiện chuột phong trào sử dụng một khối như if (leftButtonIsDown)

2

trong MouseMotionListener của bạn, bạn có thể kiểm tra việc sử dụng này:

SwingUtilities.isLeftMouseButton(me.getPoint()) 

và bạn sẽ nghe sự kiện mouseDragged.

+1

bạn đã có nó chủ yếu ở đây , nhưng tôi chỉ mở rộng trong câu trả lời của tôi –

+0

nó nên được gọi trên MouseEvent, không phải trên điểm –

+0

@DonHatch, bắt tốt. Tôi sẽ nói tốt "điểm", nhưng điều đó sẽ sai :) Tôi sẽ để lại mã như là chỉ để mọi người có thể nhận được các trò đùa (vì họ có lẽ sẽ sử dụng câu trả lời Jeffs anyway). – camickr

16
component.addmouseMotionListener(new MouseAdapter() { 
    public void mouseDragged(MouseEvent evt) { 
     if (SwingUtilities.isLeftMouseButton(evt)) { 
     // do your stuff here 
     } 
    } 
}); 
+0

Tôi không thấy cần phải có mã nguồn cấp dữ liệu muỗng như thế này. OP chỉ muốn được chỉ dẫn đúng hướng như bạn có thể nói bằng câu trả lời đã được chấp nhận. OP có thể yêu cầu giúp đỡ thêm nếu anh ta cần. – camickr

+0

Điều thú vị là câu trả lời không đề cập đến cách tìm ra nút nào được nhấn đã được chấp nhận, khi câu hỏi chỉ định nút chuột * trái * là cần thiết. Tôi tìm thấy câu hỏi này thông qua tìm kiếm, và tôi thực sự cần nó là nút chuột trái * như được chỉ định trong câu hỏi, vì vậy tôi upvoting câu trả lời này (mặc dù isLeftMouseButton là sai chính tả của văn bản này) –

Các vấn đề liên quan