0 listview javafx javafx-2 fxml
我正在尝试进行ListView 编辑,但是当我添加事件处理程序时onEditCommit,onEditCancel在代码中我无法更改文本ListView.在我的代码下面(执行但编辑不起作用):
public class ItensTipoStringController implements Initializable {
@FXML
private ListView lstItens;
ArrayList<String> itens = new ArrayList<>();
ObservableList itensObservaveis = FXCollections.observableArrayList(itens);
@Override
public void initialize(URL url, ResourceBundle rb) {
itens.add("Evandro");
itens.add("Miguel");
lstItens.setEditable(true);
lstItens.setCellFactory(TextFieldListCell.forListView());
lstItens.getItems().addAll(itens);
lstItens.setOnEditCommit(new EventHandler() {
@Override
public void handle(Event event) {
System.out.println("onEditCommit");
}
});
lstItens.setOnEditCancel(new EventHandler() {
@Override
public void handle(Event event) {
System.out.println("onEditCancel");
}
});
lstItens.setOnEditStart(new EventHandler() {
@Override
public void handle(Event event) {
System.out.println("onEditStart");
}
});
}
Run Code Online (Sandbox Code Playgroud)
}
编辑不起作用
你的意思是列表项的值没有改变OnEditCommit?
当然,你只是打印 System.out.println("onEditCommit");
您必须更新您的项目,将此行添加到handle方法正文.
lstItens.getItems().set(event.getIndex(), event.getNewValue());
Run Code Online (Sandbox Code Playgroud)
这个要点提供了一个完整的工作示例,您可以JavaFX ListView 在这里和 这里找到更多信息.