2008-10-12 6 views
0

나는 마우스 클릭을 감지하기 위해 public boolean mouseDown(Event ev, int x, int y)을 사용합니다.
마우스 오른쪽 버튼 (ev.metaDown()이 true)과 왼쪽과 가운데를 구별 할 수 있습니다.자바에서 마우스 가운데 버튼을 가져 오는 방법은 무엇입니까?

어떻게 왼쪽에서 중간 버튼과 구별 할 수 있습니까? 또는 mouseDown을 사용하여 불가능하면 무엇을 사용해야합니까?

+0

SWT, Swing 또는 (클래식) AWT는 어떤 GUI를 사용합니까? – Powerlord

+0

awt (이것은 10자를 얻습니다) – Burkhard

답변

1

ALT_MASK를 사용해보십시오 :

이 플래그는 이벤트가 발생했을 때 Alt 키를 눌렀 음을 나타냅니다. 마우스 이벤트의 경우,이 플래그는 가운데 마우스 버튼을 눌렀거나 놓았 음을 나타냅니다.

그래서 코드는 다음과 같을 수 있습니다이되지 않기 때문에

물론
if (ev.modifiers & Event.ALT_MASK != 0) { 
    // middle button was pressed 
} 

,이 모든 것은 당신이 처음에 mouseDown를 사용하는 매우 좋은 이유가 가정된다. 대신 (아마도) processMouseEvent을 사용해야합니다. 그러면 재생할 MouseEvent가 제공됩니다.

1

mouseDown은 더 이상 사용되지 않습니다. 필요한 것은 MouseEvent에서 액세스 할 수 있습니다. getButton. BUTTON3을 추적하십시오.

+0

대신 사용해야하는 것은 무엇입니까? ev는 MouseEvent가 아닌 Event이므로 ev.getButton()이 존재하지 않습니다. – Burkhard

+0

MouseListener 인터페이스를 구현해야합니다.이 페이지의 코드 샘플을 확인하십시오. http://java.sun.com/docs/books/tutorial/uiswing/events/mouselistener.html –

+5

BUTTON2가 아니라 BUTTON3이어야합니다. BUTTON3이 오른쪽 버튼입니다. –

관련 문제