FXML and high dpi screens

Danno Ferrin danno.ferrin at shemnon.com
Thu May 16 11:51:41 PDT 2013

Executive summary: Is there any way in FXML to specify the sizes of the
components in units other than pixels?  Either now or in the future?

So I am running a Java Swing Application on a Surface tablet with multiple
embedded FXPanels (mostly to deal with cross toolkit dialog modality... an
issue for another thread).  In order to not get the horrible blurred view
(since surface does 150% font scaling) I turn off the dpi fixing for the
java app, so the swing app is pixel to pixel for the most part, with some
dramatic sizing issues with the XP theming (an issue I don't expect ever to
be fixed).

So I have an FXML panel that is supposed to be 560x400, and I literally get
560px by 400px.  But the widgets are all sized in EM, which respects the
native DPI scale.  I don't want to turn that off, because in this case I
like it.  But the widgets scale up, so it sizes like a 373.333x266.666
panel.  What I do want to be able to do is specify the FXML sizes in EM, so
I would call it 35em x 25em.  Is there a way in FXML to specify these?  Or
will I have to do multiple FXMLs mechanically scaling the sizes up.  Or is
there some escape sequence or auxiliary data I can add to say "scale pixel
sizes by 150%"?

More information about the openjfx-dev mailing list