나는 동시에 된 MouseEvent & 의 KeyEvent를 작동하는 방법을 알고 싶어요.은 동시/복합의 MouseListener 및 모든 KeyListener, 된 MouseEvent 및 KeyEvent를 자바
JFrame, JPanel을 가정 해 보겠습니다.
나는 이벤트와 어떻게 일을 알고 싶어 할 때 특정 된 MouseEvent & 의 KeyEvent 예 :
addKeyListener(new KeyAdapter() {
@Override public void keyReleased(KeyEvent evt) {
if ((evt.getKeyCode() == KeyEvent.VK_META) || (evt.getKeyCode() == KeyEvent.VK_WINDOWS)) {
//SomeEVENT
}
}
});
addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent evt) {
if (SwingUtilities.isLeftMouseButton(evt)) {
System.out.println("Left button released.");
}
}
});
테스트 코드 :
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
System.out.println("mouseClicked:");
if ((evt.getModifiers() & KeyEvent.VK_META) == KeyEvent.VK_META) {
System.out.println("KeyEvent.VK_META:");
}
if ((evt.getModifiers() & KeyEvent.VK_CONTROL) == KeyEvent.VK_CONTROL) {
System.out.println("KeyEvent.VK_CONTROL:");
}
System.out.println("KeyEvent.getKeyModifiersText(evt.getModifiers()):"
+ KeyEvent.getKeyModifiersText(evt.getModifiers()));
}
});
출력
mouseClicked:
mouseClicked:
mouseClicked:
mouseClicked:
mouseClicked:
버튼 컨트롤이 감지되지 않는 문제! 단지 작업을 수행하는 방법
그러나 때 simultaneosly LeftButton + CMD 또는 WIN? 테스트 코드 및 누르면 시프트 + 클릭하기 전에 메시지가 표시됩니다 내 사용
EDIT2
! 그것은 OS 문제 (필자는 맥 OS 시에라이)
mouseClicked:
KeyEvent.getKeyModifiersText(evt.getModifiers()):⌥+Button1
mouseClicked:
KeyEvent.getKeyModifiersText(evt.getModifiers()):⌘+Button1
mouseClicked:
KeyEvent.getKeyModifiersText(evt.getModifiers()):⌃+Button1
mouseClicked:
KeyEvent.getKeyModifiersText(evt.getModifiers()):⌘+⌥+Button1
mouseClicked:
KeyEvent.getKeyModifiersText(evt.getModifiers()):⌘+⌥+Button1
mouseClicked:
KeyEvent.getKeyModifiersText(evt.getModifiers()):⌥+Button1
mouseClicked:
KeyEvent.getKeyModifiersText(evt.getModifiers()):⌘+⌥+Button1
mouseClicked:
KeyEvent.getKeyModifiersText(evt.getModifiers()):Button1
mouseClicked:
KeyEvent.VK_CONTROL:
KeyEvent.getKeyModifiersText(evt.getModifiers()):⇧+Button1
인가?
'MouseEvent' 지원이 키 확장 키 스트로크 (Alt, Ctrl 키, 메타와 같은 이벤트 객체 자체에 의해 제공되는 기능을 사용하는 것을 선호 , shift) – MadProgrammer
[JavaDocs for'MouseEvent # getModifiersEx'] (https://docs.oracle.com/javase/8/docs/api/java/awt/event/MouseEvent.html#getModifiersEx)에 나와있는 예제를 확인하십시오. -) – MadProgrammer
@MadProgrammer 정보를 제공해 주셔서 감사합니다.하지만 왜 작동하지 않는지 이해할 수 없습니다. –