diff --git a/javafx-ui-controls/src/javafx/scene/control/ComboBoxBase.java b/javafx-ui-controls/src/javafx/scene/control/ComboBoxBase.java --- a/javafx-ui-controls/src/javafx/scene/control/ComboBoxBase.java +++ b/javafx-ui-controls/src/javafx/scene/control/ComboBoxBase.java @@ -81,14 +81,18 @@ */ public ObjectProperty valueProperty() { return value; } private ObjectProperty value = new SimpleObjectProperty(this, "value") { - @Override public void set(T newValue) { - T oldValue = get(); - super.set(newValue); + T oldValue; + + @Override protected void invalidated() { + super.invalidated(); + T newValue = get(); if ((oldValue == null && newValue != null) || oldValue != null && ! oldValue.equals(newValue)) { fireEvent(new ActionEvent()); } + + oldValue = newValue; } }; public final void setValue(T value) { valueProperty().set(value); }