Pagination ComboBox is Hit by JDK BUg

Issue #57 closed
Amrullah created an issue

JDK-8120120 (aka RT-21454) and JDK-8136838

Exception in thread "JavaFX Application Thread" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361) at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81) at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105) at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112) at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146) at javafx.scene.control.ComboBoxBase.setValue(ComboBoxBase.java:150) at com.sun.javafx.scene.control.skin.ComboBoxPopupControl.setTextFromTextFieldIntoComboBoxValue(ComboBoxPopupControl.java:405)

---------------------- SOLUTION --------------

Set this stringconverter to cmbPage:

private StringConverter<Integer> numberConverter = new StringConverter<Integer>() {

    @Override
    public String toString(Integer object) {
        if (object == null) {
            return null;
        }
        return object + "";
    }
    @Override
    public Integer fromString(String string) {
        if (string == null || string.trim().isEmpty()) {
            return null;
        }
        try {
            return Integer.parseInt(string);
        } catch (Exception ex) {
            return null;
        }
    }
};

</pre>

Comments (3)

  1. Log in to comment