JavaFX Chart Coloring

Working on a Java(FX) port of my hoplite simulator Myriarch, I ran into an unexpected problem with the history chart. This part of the “Simulation Report” dialog shows how each faction’s unit count changes over the course of the simulation. You can see a screenshot from the current build below. The control is a standard … Continue reading “JavaFX Chart Coloring”

JavaFX Snapshot Scaling

If you try taking image snapshots of a JavaFX Node on a high-DPI system, you’ll find that the result is strangely blurry. This is an unfortunate side effect of the JavaFX DPI scaling introduced in Java SE 8u60. At resolutions greater than 120 DPI, JavaFX automatically treats all coordinates as abstract “layout pixels” with a … Continue reading “JavaFX Snapshot Scaling”

Class Diagrammer 2.1.0 Released

Wrapping up the Java port of my Tektosyne library (for computational geometry and graph algorithms), I recreated a number of UML diagrams for documentation, using my recently ported Class Diagrammer. That was its biggest project to date, and sure enough a large number of fixes and enhancements resulted. Class Diagrammer 2.1.0 is now available for … Continue reading “Class Diagrammer 2.1.0 Released”

JavaFX Pane Clipping

Most JavaFX layout containers (base class Region) automatically position and size their children, so clipping any child contents that might protrude beyond the container’s layout bounds is never an issue. The big exception is Pane, a direct subclass of Region and the base class for all layout containers with publicly accessible children. Unlike its subclasses … Continue reading “JavaFX Pane Clipping”

JavaFX Spinner for Numbers

The JavaFX version of the popular up-down control is called Spinner. Like its Swing progenitor JSpinner, this control is much more flexible than a typical numerical up-down control. Spinner is designed for arbitrary sequences of objects, with number ranges constituting merely a special case. This has some unfortunate consequences when you do wish to make … Continue reading “JavaFX Spinner for Numbers”

Diagrammer Fixes & Samples

I have been using my recently released Class Diagrammer for Java to document two more of my projects, and along the way inevitably found a number of bugs that needed fixing and features that needed adding. So here is Class Diagrammer 2.0.1 with the following fixes, enhancements, and new samples. 2016-06-05: Minor update to version … Continue reading “Diagrammer Fixes & Samples”

Star Chess 2.0.3 Released

Star Chess 2.0.3 is now available for download. This release contains a number of tweaks and bug fixes, partly inspired by yesterday’s Class Diagrammer release. As in Class Diagrammer, the ReadMe file now points to my recent post on JavaFX startup switches to avoid driver or scaling errors. I’ll also update the ReadMe file of … Continue reading “Star Chess 2.0.3 Released”

Class Diagrammer for Java

Class Diagrammer 2.0 is now available for download, written in Java & JavaFX and designed to reverse-engineer Java JAR files into UML class and package diagrams. This is mostly a direct rewrite of the previous version which was written in C# and operated on .NET Framework assemblies. The download page still offers the final .NET … Continue reading “Class Diagrammer for Java”

JavaFX and JAVA_TOOL_OPTIONS

JavaFX provides some dedicated system properties to customize its behavior. Usually these are specified as command-line flags on the java/javaw invocation, using the syntax “java -D<i>name=value</i>” followed by the JavaFX application path. I’ve previously noted two especially useful ones, as of Java SE 8u66-77: -Dprism.order=sw enables software rendering, even if JavaFX thinks hardware acceleration is … Continue reading “JavaFX and JAVA_TOOL_OPTIONS”

ComboBox Celebration Update

With the release of Java SE 8 Update 60 that brought WPF-style DPI scaling my two JavaFX open-source projects (MIME Browser and Star Chess) were due for an update. But then several users discovered a nasty JavaFX bug that had been introduced in Java SE 8u40 but only occurs on touch screen systems. Specifically, clicking … Continue reading “ComboBox Celebration Update”