如何区分用户对程序化更改所做的更改?

时间:2014-12-22 19:12:37

标签: javafx-8

我想对用户所做的更改做出反应,而忽略我的代码所造成的更改。

例如,我有一个显示条目名称的TextField。当用户更改它时,我想保存更改,因此我已注册了更改侦听器:

nameTextField.textProperty().addListener(
        (ObservableValue<? extends String> observable, String oldValue, String newValue) -> {
            entry.setName(newValue);
            saveEntry();
        }
);

问题是当我更新新条目的UI时,也会触发此更改侦听器:

nameTextField.setText(entry.getName());

我可以通过使用一个变量来解决这个问题,该变量表明我是否希望应用这些更改,但这感觉不对,它“闻起来”。

此外,这不仅仅是关于TextFields。我对ListViews和ComboBoxes也有同样的问题。

由于我是JavaFX的新手,我认为这是一个常见的问题,我觉得我错过了一些东西。那么,这通常如何在JavaFX中解决?

0 个答案:

没有答案