Windows GUI DPI Scaling in 2018

I have updated the article DPI Scaling in Windows GUIs with a modified test suite and new sets of screenshots for Windows 10 Creators Update, Microsoft .NET Framework 4.7.1, and Oracle Java SE 9.0.4. The focus of this update was of course Java 9 as JavaFX ceased special-casing 120 DPI, and AWT/Swing even got full … Continue reading “Windows GUI DPI Scaling in 2018”

Class Diagrammer 2.2.0 Released

I intended to summarize the ongoing Java SE 9 updates of my open-source projects in Moving Projects to Java 9. However, Class Diagrammer 2.2.0 accumulated enough changes to merit a dedicated release post. You can find a summary in the What’s New file. New Leading Option First off, a couple of days ago I discovered … Continue reading “Class Diagrammer 2.2.0 Released”

Moving Projects to Java 9

Today I’m starting to move my open-source projects to Java SE 9. I’ve covered the various significant changes in that release in four previous posts: Java SE 9 First Look Java 9 Incompatibilities JavaFX DPI Scaling in Java 9 JavaFX Spinner for Numbers (updated) As described there, some unexpected factors came up that turned the … Continue reading “Moving Projects to Java 9”

JavaFX DPI Scaling in Java 9

While porting my projects to Java SE 9 I noticed that the JavaFX team has slipped in some small but important changes concerning DPI scaling that appear to be only documented in the Java bug database, specifically JDK Bug 8091832. The entry for 2016-03-31 notes that the startup flag, defining the minimum display DPI … Continue reading “JavaFX DPI Scaling in Java 9”

Java 9 Incompatibilities

Last year I took a quick look at the newly released Java SE 9 but wanted to delay updating until the corresponding NetBeans version was out. Nothing happened, so that’s the first incompatibility to discuss, followed by JavaMail and JavaFX issues. NetBeans MIA(pache) After four months NetBeans is still in Apache incubator limbo with no … Continue reading “Java 9 Incompatibilities”

Myriarch for Java

Myriarch Combat Simulator is now available in an enhanced Java version, with a JavaFX user interface. I removed the download of the original .NET version as it was fairly rudimentary; I had already planned moving to Java at the time and so didn’t bother properly finishing that version. Overview Myriarch attempts a precise real-time simulation … Continue reading “Myriarch for Java”

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”