JavaFX 단축키 등록하기
JavaFX 에서 키보드를 이용하여 단축키를 사용하는 방법 3가지
setOnKeyPressed 를 이용하는 방법
@FXML private JFXTextField jfxTextField;
public void addEventListener() {
jfxTextField.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent ke) {
if(ke.getCode() == KeyCode.ENTER) {
System.out.println("Enter key");
}
}
}
}
KeyCombination을 이용하는 방법
@FXML private AnchorPane anchorPane;
public void addEventListener() {
Platform.runLater(() -> {
anchorPane.getScene().getAccelerators().put(new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_ANY), new Runnable() {
@Override
public void run() {
System.out.println("Ctrl + S = 저장");
}
}
});
}
setOnKeyPressed + KeyCombination 을 이용하는 방법
@FXML private AnchorPane anchorPane;
public void addEventListener() {
anchroPane.setOnKeyPressed(e -> {
if(new KeyCodeCombination(KeyCode.A, KeyCombination.CONTROL_DOWN).match(e)) {
System.out.println("Ctrl + A");
} else if(new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_DOWN).match(e)) {
System.out.println("Ctrl + S");
} else if(new KeyCodeCombination(KeyCode.ENTER, KeyCombination.CONTROL_DOWN).match(e)) {
System.out.println("Ctrl + ENTER");
}
});
}