【问题标题】:How to use the event handler onEditCommit and onEditCancel on JavaFX 2?如何在 JavaFX 2 上使用事件处理程序 onEditCommit 和 onEditCancel?
【发布时间】:2013-04-24 09:14:27
【问题描述】:

我正在尝试制作ListView 可编辑,但是当我在代码中添加事件处理程序onEditCommitonEditCancel 时,我无法更改@987654324 中的文本@。在我的代码下方(已执行但 edit 不起作用):

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

}

【问题讨论】:

  • “无法更改文本”是什么意思?

标签: listview javafx-2 javafx fxml


【解决方案1】:

编辑无效

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

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

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

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

gist 提供了一个完整的工作示例,您可以找到有关JavaFX ListView herehere 的更多信息。

【讨论】:

  • System.out.println 命令只是为了验证事件处理程序是否正在运行。我的问题是当我运行应用程序时。我可以通过双击开始编辑项目,但是当我按下回车按钮时,项目并没有改变。删除事件处理程序我可以正常编辑项目。
  • 问题解决了!要点的链接对我有帮助。仅作评论,我使用 Scene Builder 来创建 FXML 文件,它有一些错误来更新 FXML。事件处理程序未插入 XML 文件中。现在我看到了这个问题并解决了它。谢谢 tarrsalah!
  • 不客气-:),如果您完全满意,您可以接受答案。
猜你喜欢
  • 2015-08-28
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-26
相关资源
最近更新 更多