Version 2.1.0 of Myriarch, a simple real-time simulator for pre-gunpowder tactical combat, is now available for download. As with previous project updates, the Myriarch GUI is now based on Swing due to the removal of JavaFX from Oracle’s Java SE distributions.
The minimum Java requirement was consequently lowered to Java SE 8, although note that you still need Java SE 9 or later to get high DPI scaling. See the updated ReadMe and WhatsNew files for details. Here are some notes on the new Swing GUI:
- As with the previous Star Chess update, I added a command-line switch to change the Swing Look & Feel from the default Nimbus. Note that the only other tested L&F is Metal, so other L&Fs might not work correctly.
- Both online help and scenario information are now displayed with Swing
JEditorPane
andHTMLEditorKit
. Here I discovered that styling only worked correctly for help pages, which use<link>
tags to import my CSS file. CallingimportStyleSheet
andsetStyleSheet
for scenario information broke CSS inheritance and required me to reapply thebody
font size on thep
style. There’s likely more trouble down the road if the styling of scenario information ever gets more complex. - Without JavaFX I no longer had its convenient
SVGPath
parser so I wrote my own, available in classSVGtoPath2D
. Others might find it useful too, though it does not support the full SVG path specification. The only difficulty was the complex SVG arc syntax, but fortunately the Apache Batik project provided a method for that which I could use virtually unchanged. You can find details in the ReadMe and source code files. - Likewise and as with Star Chess, I could no longer use the JavaFX
Chart
class for history line charts. But I had already adapted old C chart drawing code for Swing in Star Chess, and somewhat extended it for Myriarch. You can find the result in packagemyriarch.chart
should you be interested.