을, (이 이이지만 JNI/JNA를 사용해야 할 것입니다 사실 잘) 직접 하드웨어를 제어 할 수있는 방법이 없다, 이는 당신이 단순히 키가 눌러 졌는지 확인할 수 없습니다.
KeyBindings을 사용하여 스페이스 키를 작업에 바인딩 할 수 있습니다. 스페이스 바를 누를 때 true
플래그를 설정하면 해당 플래그가 false
으로 설정됩니다. 이 솔루션을 사용하려면 응용 프로그램이 GUI 응용 프로그램이어야하며 콘솔 응용 프로그램에서는 작동하지 않습니다. 키보드 이벤트가 발생 될 때
Action pressedAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
spaceBarPressed = true;
}
};
Action releasedAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
spaceBarPressed = false;
}
};
oneOfYourComponents.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "pressed");
oneOfYourComponents.getInputMap().put(KeyStroke.getKeyStroke("released SPACE"), "released");
oneOfYourComponents.getActionMap().put("pressed", pressedAction);
oneOfYourComponents.getActionMap().put("released", releasedAction);
다음에, 직접 마우스를 눌러 실행하는 것입니다 할
try {
Robot robot = new Robot();
if (spaceBarPressed) {
try {
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
} catch (InterruptedException ex) {
//handle the exception here
}
}
} catch (AWTException e) {
//handle the exception here
}
GGrec가 썼던 것처럼, 더 나은 방법을 사용
Action pressedAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
try {
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
} catch (InterruptedException ex) {
//handle the exception here
}
}
};
당신은 (보류 SPACE -> 보도 CLICK)을 키 - 마우스 조합을 구현하려고, 또는 (키를 누른 후) 당신은 시간의 짧은 창을 갖고 싶어 할 마우스 버튼을 클릭? – GGrec
스페이스 버튼을 누른 후 클릭하십시오 : –