JavaFX
[JavaFX] KeyCode.ESCAPE esc 단축키 사용하기
오탄자
2020. 9. 18. 13:56
JavaFX에서 ESC 키 이벤트 단축키 설정
최상위 anchorPane에
setOnkeyPressed 이벤트로 ESC 키 이벤트를 등록하면 텍스트, 콤보박스 등의 객체에서는 이벤트가 발생하지만,
테이블에 커서가 있을때는 이벤트가 작동하지 않는 상황이 발생한다.
@FXML private AnchorPane anchorPane;
@FXML private TableView<UserVO> table;
public void addEventListener() {
anchorPane.setOnKeyPressed(e -> {
if(KeyCode.ESCAPE == e.getCode() {
close();
}
});
table.setOnKeyPressed(e -> {
if(KeyCode.ESCAPE == e.getCode() {
close();
}
});
}
Scene 에 addEventFilter를 사용하면 해결된다.
anchorPane에서 scene를 불러와서 KeyEvent.KEY_PRESSED로 이벤트를 등록하면
테이블에서도 ESC 이벤트를 발생시킬 수 있다.
anchorPane.getScene().addEventFilter(KeyEvent.KEY_PRESSED, e -> {
if(KeyCode.ESCAPE == e.getCode()) {
close();
}
});