Company News

<< Previous PageNext Page >>

SyntheticaAddons V3.1 released!(10:31, 11. Jul. 2018)

We are pleased to announce the release of SyntheticaAddons V3.1.0. A complete list of changes can be found at the SyntheticaAddons changelog.


  • JYDateComboBox - new control, mainly a replacement for DateComboBox with enhanced features like Today/Clear button support and direct Highlighter support - see screenshots below
  • ComboBoxMonthView - JXMonthView optimized for the use as JYComboBox popup
  • MonthViewUI - improved scaling support
  • Updated SwingX library

JYDateComboBox Screenshot

JYDateComboBox Second Screenshot

JYDateComboBox Highlighter Screenshot

Product Links

Maintenance Release Synthetica V3.1.1 available!(10:11, 06. Jun. 2018)

We are pleased to announce the maintenance release of Synthetica V3.1.1. For a complete list of changes take a look at Synthetica changelog. Beside some bug fixes the update provides the improvements listed below.

  • Improved HiDpi support for frame icons
  • Improved background color fill for disabled text controls
  • Improved default button state support




Product Links

Announcing SyntheticaAddons V3.0.1(14:15, 19. Apr. 2018)

The maintenance release SyntheticaAddons V3.0.1 is available for downloading. The update provides a bug fix for an exception which occurs on OSX with Java 10 only - see also SyntheticaAddons changelog.








Product Links

Announcing Synthetica V2.31.0 / SyntheticaAddons V1.12.2(13:32, 17. Apr. 2018)

The maintenance releases Synthetica V2.31.0 and SyntheticaAddons V1.12.2 are available for downloading. The updates mainly provide some minor enhancements and bug fixes - see also Synthetica changelog and SyntheticaAddons changelog.








Product Links

Synthetica V3.1.0 has been released!(11:33, 07. Feb. 2018)

We are pleased to announce the release of Synthetica V3.1.0. A complete list of changes can be found at the Synthetica changelog. The update mainly improves UI-scaling support to achieve good results even for scaling values which are not a whole multiple.

In this new release the API has been extended to improve image scaling support. Some new methods can be found in the HiDpi class. The new scaling support works pretty well even for indeterminate scale factors. More details are described in the article Synthetica UI-Scaling In Detail - so this is how Synthetica scaling looks since V3.1.

Synthetica 3.1 UI-Scaling

Product Links

Synthetica UI-Scaling In Detail(10:36, 02. Feb. 2018)

As you may know Synthetica V3 comes along with UI-Scaling support. The UI-properties listed below help you to control scaling to fit your needs.

  • Synthetica.scaleFactor
    Percentage integer value to scale the complete UI.
  • Synthetica.font.scaleFactor
    Percentage integer value can be used to specify a scale factor for fonts only - if not set Synthetica.scaleFactor will be used for font scaling.
  • Synthetica.font.respectSystemDPI
    Boolean value - works only if Synthetica UI-Scaling is not active, if set to true or not set (null) and Swing UI-Scaling is disabled fonts will be scaled with system DPI setting.
  • Synthetica.imageScaleAlgorithm
    Integer value - supported since V3.1.0 to specify the algorithm used for image scaling. Default value is 1 and stands for smooth/bicubic scaling. A value of 0 means disabled and leads to the scaling results of V3.0.0.

For linear scaling it's recommended to set Synthetica.font.respectSystemDPI to false when using the UI-Scaling option. Otherwise, especially on high-resolution platforms, fonts of your application may appear too big if a Synthetica scale factor is not set or set to 100.

UIManager.put("Synthetica.scaleFactor", 150);
UIManager.put("Synthetica.font.respectSystemDPI", false);

Image Scaling

As you maybe know most of our themes are based on image files. In Synthetica V3.1 image scaling support has been improved to work fine even for indeterminate scale factors. In the screenshots below you can clearly see the differences in scaling between Swing UI-Scaling, Synthetica V3.0 and Synthetica V3.1.

Swing UI-Scaling

As you an see in the screenshots below the default Swing scaling of Java 9 has some issues like unwanted artifacts and image scaling quality.

Swing UI-Scaling

Synthetica V3.0 Scaling

In Synthetica V3.0 these issues do not appear if the scaling factor is a whole multiple means 100%, 200%, 300%... However, even if image scaling is slightly better than Swing's default scaling it's not as good as it could be.

Synthetica V3.0 Scaling

Synthetica V3.1 Scaling

In Synthetica V3.1 image scaling was massively improved. So the complete application appears pretty well scaled even with intermediate scale factors.

Synthetica V3.1 Scaling

Synthetica V3.1 also provides an enhanced API to simplify image scaling for your needs. The HiDpi class provides some new methods to let you scale your images easily.

//scale image relatively with the current Synthetica scale factor
scaledImage = HiDpi.scaleImage(myImage);

//scale image absolutely to reach the passed width/height
scaledImage = HiDpi.scaleImage(myImage, newWidth, newHeight);

//scale multi resolution image with the current Synthetica scale factor
scaledImage = HiDpi.createImage(myImage, myHiResImage).getScaledInstance();
//or directly by passing image file names
scaledImage = HiDpi.createImage(getClass(), "arrow.png", "arrow@2x.png").getScaledInstance();

BTW: Synthetica V3.1.0 will be released pretty soon.

Related Links

SyntheticaAddons V3 has been released!(15:52, 30. Nov. 2017)

We are pleased to finally announce the release of SyntheticaAddons V3.0.0.

New Features

SyntheticaAddons V3 provides some great new features:

  • High-resolution support
  • Scalability support
  • JPMS (Java module system) support
  • Icon library with around 7,000 font based scalable icons
  • Theme extension for Synthetica's new flat styled dark theme
  • Improved docking framework to support to minimize/maximize dockables within a floating window and dynamically add a dockable to a maximized/minimized dockable
  • Updated SwingX library
  • Java 9 support


SyntheticaAddons provides a font based icon library with around 7,000 scalable icons. For your convenience we've created a simple browser application which helps you to find proper icons for your project. By selecting an icon the related source code appears in the bottom panel - so you can simply copy and paste the code into your project.

SyntheticaAddons IconFontBrowser



For being JPMS compatible the package structure in V3 was reorganized, which also means that V3 is no longer backward compatible. However, class names are unchanged so your preferred IDE should be able to easily update all package imports of your application. All modules of SyntheticaAddons V3 are listed below.

SyntheticaAddons core                 ->  synthetica.addons.base
SyntheticaAddons jywidgets            ->  synthetica.addons.widgets
SyntheticaAddons jytable              ->  synthetica.addons.table
SyntheticaAddons jydocking            ->  synthetica.addons.docking
SyntheticaAddons jyiconfonts          ->  synthetica.addons.iconfonts
SyntheticaAddons swingx               ->  synthetica.addons.swingx
SyntheticaAddons netbeans             ->  synthetica.addons.netbeans
SyntheticaAddons Dark theme           ->  synthetica.addons.theme.dark
SyntheticaAddons Plain theme          ->  synthetica.addons.theme.plain
SyntheticaAddons BlueLight theme      ->  synthetica.addons.theme.bluelight
SyntheticaAddons AluOxide theme       ->  synthetica.addons.theme.aluoxide
SyntheticaAddons Classy theme         ->  synthetica.addons.theme.classy
SyntheticaAddons BlackEye theme       ->  synthetica.addons.theme.blackeye
SyntheticaAddons Simple2D theme       ->  synthetica.addons.theme.simple2d
SyntheticaAddons WhiteVision theme    ->  synthetica.addons.theme.whitevision
SyntheticaAddons SkyMetallic theme    ->  synthetica.addons.theme.skymetallic
SyntheticaAddons MauveMetallic theme  ->  synthetica.addons.theme.mauvemetallic
SyntheticaAddons OrangeMetallic theme ->  synthetica.addons.theme.orangemetallic
SyntheticaAddons BlueSteel theme      ->  synthetica.addons.theme.bluesteel
SyntheticaAddons BlackMoon theme      ->  synthetica.addons.theme.blackmoon
SyntheticaAddons BlueMoon theme       ->  synthetica.addons.theme.bluemoon
SyntheticaAddons SilverMoon theme     ->  synthetica.addons.theme.silvermoon
SyntheticaAddons BlueIceMoon theme    ->  synthetica.addons.theme.blueice
SyntheticaAddons GreenDream theme     ->  synthetica.addons.theme.greendream
SyntheticaAddons BlackStar theme      ->  synthetica.addons.theme.blackstar
SyntheticaAddons Standard theme       ->  synthetica.addons.theme.standard   

The library syntheticaAddonsWithThemes.jar which includes all theme extensions required for SyntheticaAddons is no longer provided. The library was created in V1 for your convenience to decrease the number of libraries required for your projects. However, because of the high number of available themes and in respect of JPMS it makes no sense to provide the library any longer.

For proper execution without any errors/warnings make sure to pass the arguments below to the JVM. Note: Don't forget to add the arguments required for the synthetica.base module too - see Synthetica's 'README.TXT'.


Legacy Mode (Classpath Mode)

Of course you are not forced to use the new module system. You can simply use our libraries as usual by specifying a classpath. However, in this case you have to use the JVM arguments below to avoid any errors/warnings.


Alternatively, you can put the arguments into the file of your application by adding the attributes below - however, this will work only if your application is executed as jar file in legacy mode (classpath mode). Means as usual with specifying a class path instead of a module path. Note: Be aware that Web Start does not respect these entries - in this case you have to use the JVM arguments from above and add it to the j2se entry of your jnlp file.

Add-Exports: java.desktop/sun.swing java.desktop/sun.swing.table java.desktop/sun.swing.plaf.synth java.desktop/ java.desktop/com.sun.awt java.base/ java.desktop/    
Add-Opens: java.desktop/javax.swing.plaf.synth java.desktop/javax.swing.plaf.basic java.desktop/javax.swing java.desktop/javax.swing.tree java.desktop/java.awt.event

JPMS Integration

Generally you only have to add the modules of the required themes to your application. However, by not using the static clause all specified theme modules are mandatory to run your application. Which means at compile and run time.

With using the static clause all specified theme modules are optional at run time. However, in this case you have to tell the JVM which of the theme modules should be added to the module graph e.g. by using --add-modules.


module synthetica.demo
   requires synthetica.addons.base;
   requires synthetica.addons.swingx;
   requires synthetica.addons.widgets;
   requires synthetica.addons.docking;
   requires synthetica.addons.table;

   requires static synthetica.theme.aluoxide;
   requires static synthetica.theme.blackeye;
   requires static synthetica.theme.blackmoon;
   requires static synthetica.theme.blackstar;
   requires static synthetica.theme.blueice;
   requires static synthetica.theme.bluelight;
   requires static synthetica.theme.bluemoon;
   requires static synthetica.theme.bluesteel;
   requires static synthetica.theme.classy;
   requires static synthetica.theme.dark;
   requires static synthetica.theme.greendream;
   requires static synthetica.theme.mauvemetallic;
   requires static synthetica.theme.orangemetallic; 
   requires static synthetica.theme.plain;
   requires static synthetica.theme.silvermoon;
   requires static synthetica.theme.simple2d;
   requires static synthetica.theme.skymetallic;
   requires static synthetica.theme.standard;
   requires static synthetica.theme.whitevision;
   requires static synthetica.addons.theme.aluoxide;
   requires static synthetica.addons.theme.blackeye;
   requires static synthetica.addons.theme.blackmoon;
   requires static synthetica.addons.theme.blackstar;
   requires static synthetica.addons.theme.blueice;
   requires static synthetica.addons.theme.bluelight;
   requires static synthetica.addons.theme.bluemoon;
   requires static synthetica.addons.theme.bluesteel;
   requires static synthetica.addons.theme.classy;
   requires static synthetica.addons.theme.dark;
   requires static synthetica.addons.theme.greendream;
   requires static synthetica.addons.theme.mauvemetallic;
   requires static synthetica.addons.theme.orangemetallic;
   requires static synthetica.addons.theme.plain;
   requires static synthetica.addons.theme.silvermoon;
   requires static synthetica.addons.theme.simple2d;
   requires static synthetica.addons.theme.skymetallic;
   requires static synthetica.addons.theme.standard;
   requires static synthetica.addons.theme.whitevision;

Only the themes you want to use at run time will be added to the modules graph with --add-modules. In the example below it's the SyntheticaPlain theme.

java --add-exports=... --module-path synthetica.jar;syntheticaPlain.jar;syntheticaPlainAddon.jar;syntheticaDemo.jar --add-modules synthetica.theme.plain --add-modules synthetica.addons.theme.plain -m synthetica.demo/de.javasoft.synthetica.demo.Demo        

System Requirements

SyntheticaAddons V3 requires Java 9 or above - however, in case you have to support Java 6/7/8 and Java 9 you should consider to use SyntheticaAddons V1 in classpath mode only.


Product Links

<< Previous PageNext Page >>