Bug: Not on FX application thread exception is inconsistent

Ty Young youngty1997 at gmail.com
Mon Nov 12 21:04:51 UTC 2018


On 11/9/18 11:58 PM, Ty Young wrote:
> Hi,
>
>
> My JavaFX program updates API objects in the background via a non FX 
> thread that, when changed by another program, are reflected in my 
> JavaFX GUI's controls by property binding, specifically TableView, 
> Slider, TextField, and ComboBox. Problem is, while JavaFX is OK with 
> this for TableView, Slider, and TextField, it throws a Not on FX 
> application thread exception *only* for the ComboBox.
>
>
> The code for the slider looks like this:
>
>     private class ValueListener implements ChangeListener<Integer>
>     {
>         @Override
>         public void changed(ObservableValue<? extends Integer> 
> observable, Integer oldValue, Integer newValue)
>         {
>             slider.getSlider().setValue(newValue);
>             slider.getTextBox().setText(newValue.toString());
>         }
>     }
>
>
> (the slider variable is misleading, it's actually a VBox that contains 
> a Slider and a TextField. Need to change it but I digress.)
>
>
> which works fine. However this:
>
>
>     private class ValueListener implements ChangeListener<E>
>     {
>         @Override
>         public void changed(ObservableValue<? extends E> observable, E 
> oldValue, E newValue)
>         {
>             combo.setValue(newValue);
>         }
>     }
>
>
> doesn't for the ComboBox.
>
>
> Is this a bug or is there some legitimate invisible reason as to why 
> the slider/textfield isn't throwing an error but the combobox one is?
>
>
>

Anything at all on this? Does JavaFX have bipolar thread disorder or 
something?



More information about the openjfx-dev mailing list