0

我正在尝试制作一个可ListView 编辑的. 在我的代码下方(已执行但编辑不起作用):onEditCommitonEditCancelListView

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");
        }
    });
   }    

}

4

1 回答 1

6

编辑不起作用

你的意思是列表项的值没有改变OnEditCommit

当然,你只是在打印System.out.println("onEditCommit");

您必须更新您的项目,将此行添加到您的handle方法主体。

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

这个要点提供了一个完整的工作示例,您可以JavaFX ListView 在此处此处找到更多信息。

于 2013-04-30T22:36:04.433 回答