Re: Is the API of JavaFX pixel-based?
Jeff Higgins <firstname.lastname@example.org> writes:
Can you point to the specific tutorial you mention?
I refer to code like:
Scene s = new Scene( r, 360, 120, Color.rgb( 0, 0, 0, 0 ));
. It is not obvious how the author arrived at those
values ?360? and ?120?.
The Scene contains some text fields stacked one above
the other. What I would prefer instead would be a call
Scene s = new Scene( r, Color.rgb( 0, 0, 0, 0 ));
The textfields would have a default font that is
readable (but not excessively high as in a heading).
Symbolic constants are Ok, like ?PARAGRAPH_FONT?,
The pixel height of that default font depends on the
run-time environment and does not have to be known
to the programmer. Then, the height of the textfield
would be adjusted to the height of this font, while
the width is given by the programmer in ?m?s (?10?
means, wide as 10 ?m? letters in that font).
The width and height of all the containers and,
ultimatively of the scene, is calculated bottom-up
from those values. They are not known to the
programmer, because they are calculated as late
as run time.
In programming, we were taught early to avoid
?magic constants? in source code (such as ?360?
above). More so, in my opinion, we should especially
avoid ?magic pixel values? in source code. A good program
will not set a fixed pixel height for a font, but
adjust to the font height that is natural (readable)
on a device and will only be known as late as at run time.