我有一个带有TreeView的项目,如果我选择一个TreeItem并输入DELETE,则与之相关的文件将自动在磁盘上删除。但它不起作用,我通过在互联网上搜索找不到答案。这是我的函数(listeArbres是TreeView):
private void recupereFichierProjet(File repertoire, FileFilter filtre) {
File[] fichiers = repertoire.listFiles(filtre);
TreeItem<String> rootItem = new TreeItem<String>("Workspace");
rootItem.setExpanded(true);
for (File fichier : fichiers) {
Projet projet = Projet.charge(fichier);
TreeItem<String> item = new TreeItem<String>(fichier.getName());
item.addEventHandler(KeyEvent.KEY_TYPED, event -> {
if (event.getCode() == KeyCode.DELETE) {
System.out.println("la");
Projet.supprime(
new File("./workspace/" + listeArbres.getSelectionModel().getSelectedItem().getValue()));
initialiseTreeView();
}
});
rootItem.getChildren().add(item);
for (Arbre arbre : projet.getArbreDuProjet()) {
TreeItem<String> itemBis = new TreeItem<String>(arbre.getEntete().getNomFonction());
item.getChildren().add(itemBis);
}
}
listeArbres.setRoot(rootItem);
listeArbres.setVisible(true);
}
我认为我理解了addEventHandler是用于不同事件的,所以我不明白如何在“Item”对象上使用KeyListener。
“Projet”上的静态方法“supprime”用于删除我的文件。
提前感谢您。(对我的糟糕英语表示抱歉)。