JavaFX Content Rendering & Resizing and Font Bugs In Linux

Ty Young youngty1997 at gmail.com
Sat Jan 5 14:56:00 UTC 2019


On 1/2/19 6:27 PM, Ty Young wrote:
>
> (I'm too lazy to make different emails for every bug so I've just 
> thrown them in a single email. Hopefully that isn't a big deal.)
>
>
> In my attempt to write a more proper responsive JavaFX UI, I've 
> created a new JavaFX project which extensively uses DoubleBindings to 
> force the min/max width/height of various components to their parent 
> containing objects(HBox and VBox mainly) so that 1440p and 4k displays 
> could be more easily supported. While it does allow for easier 1440p 
> and 4k scaling, JavaFX itself seems to have /extremely/ horrible 
> content rendering & resizing bugs to the point where the application 
> becomes usable.
>
>
> For clarity, the applications uses buttons in a VBox which when 
> clicked set a ScrollPane on the right side to whatever pane the button 
> represents("About" for example) like a TabPane. This is so it can be 
> scaled more easily to different resolutions.
>
>
> Multiple of the bugs can be observed by simply resizing the JavaFX 
> window. When doing so, content will seemingly struggle to keep up with 
> resizing events. As a result, white(or sometimes black) glitching can 
> be seen wherever the window is being expanded and UI components will 
> "jump" around. TableView's horizontal and vertical scrollbars will 
> glitch out and show while the window is being resized even though it 
> has plenty of room to display the contents. They sometimes even get 
> stuck, requiring the user to resize the window for them to go away.
>
>
> If the window is resized or if the window is maximized and later 
> unmaximized , any non visible content will not be resized and will 
> require that the window be resized by the user. A horizontal scroll 
> bar will be displayed and usable to scroll to the content that hasn't 
> been adjusted to the new window size. Sometimes JavaFX will slowly 
> resize the content in seemingly steps however it doesn't always do this.
>
>
> Thinking that this might be problems caused by extensive use of 
> DoubleBinding, I launched SceneBuilder 10 which uses Oracle JDK 10. It 
> has all of the same UI glitching that I've encountered in my JavaFX 
> application at a lesser scale besides TableView since it doesn't use 
> TableView.
>
>
> The degree of how badly the bugs happen seemingly depend on:
>
>     A. The app launch
>
>     B. The time the application is open
>
>     C. The max stretched width/height of the window
>
>
> In other words, it's possible to experience little UI glitching one 
> app launch while using it after awhile but then relaunch it later with 
> no code changed and get far more glitching.
>
>
> Another problem is a font bug revolving around making text bold. When 
> attempting to make a label bold, the boldness is seemingly not being 
> applied to some Label text. It might work on a few Labels in a certain 
> part of the UI but completely refuse in other parts. Making things 
> weirder is the disappearing boldness of Labels after setting a new 
> Pane in the ScrollPane and switching back to a that specific pane.
>
>
> For example: on first click to the pane two labels will be bold as set 
> in code. Switching to another pane and back results in the last bold 
> label not being bold anymore. Switching to another pane again results 
> in the first Label no longer being bold.
>
>
> All of these bugs make the application unusable(except the boldness 
> bug). Is this all known? Are there any workarounds?
>
>
> P.S. To whoever is developing SceneBuilder, please add a minimum 
> width/height to the stage. A user shouldn't be able to make resize the 
> window to 1x5 or whatever the smallest window size is allowed by the OS.
>

I've also just tested this in Ubuntu 18.04 as well via a jlink bundle. 
All of the window resizing and content jumping bugs exist on it as well.


Does anyone know anything?



More information about the openjfx-dev mailing list