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
 

IconFontBrowser

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

IconFontBrowser

Modules

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'.

--add-exports=java.desktop/com.sun.java.swing.plaf.windows=synthetica.addons.base
--add-opens=java.desktop/javax.swing.plaf.synth=synthetica.addons.base
--add-exports=java.desktop/com.sun.java.swing.plaf.windows=synthetica.addons.table
--add-exports=java.desktop/sun.swing=synthetica.addons.swingx   
 

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.

--add-exports=java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED

Alternatively, you can put the arguments into the manifest.mf 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/sun.awt.shell java.desktop/com.sun.awt java.base/sun.security.action java.desktop/com.sun.java.swing.plaf.windows    
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.

Example:

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

SyntheticaAddons
SyntheticaAddons Download
SyntheticaAddons Changelog
Synthetica V3