JUNG 프로그램을 사용하여 Java에서 PluggableGraphMouse 및 2 EditingGraphMousePluggings를 만들었습니다. 내가 설정 한 경우 수정을 클릭 왼쪽과 오른쪽이 여기에, 완벽하게 정상적으로 작동 setModifiers 코드를 클릭합니다 :JUNG 및 Java로 MouseEvents
ovalMouse.setModifiers(MouseEvent.BUTTON1_MASK);
circleMouse.setModifiers(MouseEvent.BUTTON3_MASK);
내가 그러나하고자하는 클릭을 떠난하는 것입니다 한 가지와 SHIFT + 마우스 왼쪽 버튼을 클릭 (오른쪽 클릭 대신에) 다른 것을하십시오. 내가 생각할 수있는 모든 조합을 시도했지만 작동하도록 할 수는 없습니다.
//My logic here is Button1 AND Shift is down but this doesn't work
circleMouse.setModifiers(MouseEvent.BUTTON1_MASK & MouseEvent.SHIFT_DOWN_MASK);
// My logic here is Button1 AND Shift but this doesn't work either
circleMouse.setModifiers(MouseEvent.BUTTON1_MASK & MouseEvent.SHIFT_MASK);
// Also tried InputEvents but those didn't work either
circleMouse.setModifiers(InputEvent.BUTTON1_DOWN_MASK & InputEvent.SHIFT_DOWN_MASK);
을 사람이 올바른 수정 그래서 난 주시기 바랍니다 + circleMouse에 대한 이동 ovalMouse 버튼 1 버튼 1을 사용할 수있는 것을 알고있는 경우 : 여기에 작동하지 않습니다 내가 해봤 더 논리적 조합의 일부입니다 나도 알아. 감사. 당신이 BUTTON3
을 사이에 마우스 이벤트를 차별화하려는 경우,
그래서
System.out.println(circleMouse.getModifiers());
if ((circleMouse.getModifiers() & (MouseEvent.SHIFT_MASK | MouseEvent.BUTTON3_MASK)) == (MouseEvent.SHIFT_MASK | MouseEvent.BUTTON3_MASK)){
System.out.println(MouseEvent.getMouseModifiersText(circleMouse.getModifiers()));
}
업데이트 :
음 ... 그게 내가 정직 해지는 데 도움이되는지 확실하지 않습니다. 수식어가 무엇인지 검사하는 부울 문을 작성했습니다. Im은 수식자를 설정하는 int 문과 관련된 문제입니다. circleMouse.setModifiers (MouseEvent.BUTTON1_MASK & MouseEvent.SHIFT_MASK);를 작성하면, 그건 제대로 발사되지 않습니다. 누구나 getModifiers 행이 아니라 setModifiers 행이 작동하는지 알아야합니다. – fxtdr
사실, JUNG이 내 자신의 테스트에서 MouseEvent의'setModifiers (int) '로 어떤 영향을 미치는지 보지 못합니다. 내 테스트에서, 수식어는 값이 당신이 관심있는 하나 이상의'MouseEvent' 상수의 조합 인'int' 값을 받아 들일 것입니다. 예를 들면 다음과 같습니다 :'MouseEvent.SHIFT_MASK (0x1) | MouseEvent.BUTTON3_MASK (0x4) == 0x5'는 MouseEvent의 getModifiers()에서 얻은 메타 키 'SHIFT + BUTTON3'이 선택 될 때 true가됩니다. 내 업데이트보기 – eee
요약하면 : 비트 OR '|' bitwise AND 대신 '&'를 사용하여 마스크를 결합합니다. –