JavaFX Content Rendering & Resizing and Font Bugs In Linux
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
> 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