Listview 如何在JavaFX2上使用事件处理程序onEditCommit和onEditCancel?

Listview 如何在JavaFX2上使用事件处理程序onEditCommit和onEditCancel?,listview,javafx-2,javafx,fxml,Listview,Javafx 2,Javafx,Fxml,我试图使列表视图可编辑,但当我在代码中添加事件处理程序onEditCommit和onEditCancel时,我无法更改列表视图中的文本。下面是我的代码(已执行,但编辑不起作用): 公共类ITenstipStringController实现可初始化{ @FXML 私有列表视图; ArrayList itens=新的ArrayList(); ObservableList itensObservaveis=FXCollections.observableArrayList(itens); @凌驾 公共

我试图使
列表视图
可编辑,但当我在代码中添加事件处理程序
onEditCommit
onEditCancel
时,我无法更改
列表视图
中的文本。下面是我的代码(已执行,但编辑不起作用):

公共类ITenstipStringController实现可初始化{
@FXML
私有列表视图;
ArrayList itens=新的ArrayList();
ObservableList itensObservaveis=FXCollections.observableArrayList(itens);
@凌驾
公共无效初始化(URL,ResourceBundle rb){
添加(“Evandro”);
添加(“米格尔”);
lstItens.setEditable(true);
lstItens.setCellFactory(TextFieldListCell.forListView());
lstItens.getItems().addAll(itens);
setOnEditCommit(新的EventHandler(){
@凌驾
公共无效句柄(事件){
System.out.println(“onEditCommit”);
}
});
setOnEditCancel(新的EventHandler(){
@凌驾
公共无效句柄(事件){
System.out.println(“onEditCancel”);
}
});
setOnEditStart(新的EventHandler(){
@凌驾
公共无效句柄(事件){
System.out.println(“onEditStart”);
}
});
}    
}

编辑不起作用

您的意思是,列表项的值在
OnEditCommit
上没有更改

当然,您只是在打印
System.out.println(“onEditCommit”)

您必须更新您的项目,将此行添加到
句柄
方法正文中

lstItens.getItems().set(event.getIndex(), event.getNewValue());
这提供了一个完整的工作示例,您可以找到有关
JavaFXListView
和的更多信息

编辑不起作用

您的意思是,列表项的值在
OnEditCommit
上没有更改

当然,您只是在打印
System.out.println(“onEditCommit”)

您必须更新您的项目,将此行添加到
句柄
方法正文中

lstItens.getItems().set(event.getIndex(), event.getNewValue());

这提供了一个完整的工作示例,您可以找到有关
JavaFXListView
和的更多信息

“无法更改文本”是什么意思?无法更改文本是什么意思?System.out.println命令仅用于验证事件处理程序是否正在运行。我的问题是当我运行应用程序时。我可以通过双击开始编辑项目,但当我按enter按钮时,项目不会更改。删除事件处理程序我可以正常编辑项目。问题已解决!要点链接帮助我。仅供评论,我使用Scene Builder创建FXML文件,但它有一些bug需要更新FXML。事件处理程序未插入XML文件中。现在我看到了这个问题并解决了它。谢谢塔尔萨拉!欢迎您-:),如果您完全满意,您可以接受答案。System.out.println命令仅用于验证事件处理程序是否正在运行。我的问题是当我运行应用程序时。我可以通过双击开始编辑项目,但当我按enter按钮时,项目不会更改。删除事件处理程序我可以正常编辑项目。问题已解决!要点链接帮助我。仅供评论,我使用Scene Builder创建FXML文件,但它有一些bug需要更新FXML。事件处理程序未插入XML文件中。现在我看到了这个问题并解决了它。谢谢塔尔萨拉!欢迎-:),如果您完全满意,您可以接受答案。