JavaFX TreeTableView 키보드 Delete로 선택 row 삭제하기
TreeTableView 생성
Root 와 Sub 데이터를 삭제
KeyCode.DELETE로 키보드 이벤트
Root 데이터 삭제
- rootItem.getChildren().remove();
Sub 데이터 삭제
- Root의 인덱스 번호 찾기 : selected.getParent().getParent().getChildren().indexOf();
- rootItem.getChildren().get(index).getChildren().remove();
@FXML private TreeTableView<UserVO> tree;
private void addEventListener() {
tree.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent ke) {
if(ke.getCode().equals(KeyCode.DELETE) {
/* Root row 삭제 */
if(tree.getSelectionModel().getSelectedItem().getValue().getId() != null) {
rootItem.getChildren().remove(tree.getSelectionModel().getSelectedItem());
} else {
TreeItem<UserVO> selected = tree.getSelectionModel().getSelectedItem();
/* root index */
int index = selected.getParent().getParent().getChildren().indexOf(selected.getParent());
/* sub delete */
rootItem.getChildren().get(index).getChildren().remove(selected);
}
}
}
}
}
'JavaFX' 카테고리의 다른 글
[JavaFX] MenuItem setMnemonicParsing 단축키, SeparatorMenuItem 구분자 (0) | 2020.08.28 |
---|---|
[JavaFX] multiple key event Combination ctrl + s 단축키 사용 (0) | 2020.08.25 |
[JavaFX] TreeTableColumn에 TextField 넣고 변경하기 (0) | 2020.08.18 |
[JavaFX] Hibernate cannot be case to 오류 (0) | 2020.08.15 |
[JavaFX] textField input validation 체크하기 (0) | 2020.08.05 |