Radiance 3.5.0

October 5th, 2020

It gives me great pleasure to announce the fifth major release of Radiance. Let’s get to what’s been fixed, and what’s been added. First, I’m going to use emojis to mark different parts of it like this:

💔 marks an incompatible API / binary change
😻 marks new features
🤷‍♀️ marks bug fixes and general improvements

Dependencies for core libraries

  • Gradle from 6.4.1 to 6.6.1
  • Kotlin from 1.3.72 to 1.4.10
  • Kotlin coroutines from 1.3.7 to 1.3.9


  • 💔 Remove support for watermarks
  • 💔 Convert SubstanceSkin.ColorSchemes into an interface
  • 😻 Support for overlay colors with SubstanceSkin.setOverlayColor
  • 💔 Support for specifying derived colors in color scheme files
  • 😻 New API to mark a label as title pane text
  • 😻 Text highlights that respect decoration areas
  • 💔 Moved the Green Magic skin from substance-extras to the core substance module (see the screenshot of this skin above)
  • 💔 Aligned signatures of ComponentState.getActiveStates and ComponentState.getAllStates
  • 🤷‍♀️ Improved menu search widget UX
  • 🤷‍♀️ Correct layout for edit context menu under RTL
  • 🤷‍♀️ Fix concurrent modification exception thrown when ghost icon animations are enabled


  • 💔 Pass command projection instead of command in ribbon contextual menu listener
  • 💔 Remove AbstractCommandButton class. Everything is in the JCommandButton class now.
  • 😻 New CommandButtonPresentationModel.Builder.setPopupHorizontalGravity API to contol horizontal alignment of command button popups
  • 🤷‍♀️ Fix crash in opening a command popup menu from taskbar
  • 🤷‍♀️ Fix memory leaks caused by model listeners
  • 🤷‍♀️ Fix for root key tip chain not showing popup key tips of anchored commands
  • 🤷‍♀️ Fix for overlays on ribbon popup content in the title pane / taskbar


  • 🤷‍♀️ Fix inconsistent usage of conversion from duration fraction to timeline position

This release has mostly been focused on stabilizing and improving the overall API surface of the various Radiance modules. There’s still a long road ahead to continue exploring the never-ending depths of what it takes to write elegant and high-performing desktop applications in Swing. If you’re in the business of writing just such apps, I’d love for you to take this Radiance release for a spin. Click here to get the instructions on how to add Radiance to your builds. And don’t forget that all of the modules require Java 9 to build and run.