ThemeManager#setCurrentThemeId(String)- and no there's no guide how to do it]]>
@Component(service=Theme.class) public class DefaultTheme extends AbstractTheme { public DefaultTheme() { super("theme.default", "Default theme", DefaultTheme.class.getClassLoader().getResource("css/default.css")); System.out.println("Default Theme loaded."); } @Reference(cardinality=ReferenceCardinality.MULTIPLE) @Override public void registerStylesheet(Stylesheet stylesheet) { System.out.println("Default Registration."); super.registerStylesheet(stylesheet); } @Override public void unregisterStylesheet(Stylesheet stylesheet) { System.out.println("Default Deregistration."); super.unregisterStylesheet(stylesheet); } }
public static void switchTheme(String themeID) { themeManager.setCurrentThemeId(themeID); } public static Theme getTheme() { return themeManager.getCurrentTheme(); }
public class DefaultTheme extends AbstractTheme { public DefaultTheme() { super("theme.default", "Default theme", DefaultTheme.class.getClassLoader().getResource("css/default.css")); }
@PostConstruct public void init(BorderPane root) { try { Button btn = new Button("Switch Theme"); root.setCenter(btn); btn.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<Event>() { @Override public void handle(Event event) { System.out.println("Set night theme."); LifeCycleManager.switchTheme("theme.night"); } }); }catch (Exception e) { e.printStackTrace();
@PostConstruct public void init(Stage primStage) { try { BorderPane root= new BorderPane(); Button btn = new Button("Switch Theme"); root.setCenter(btn); btn.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<Event>() { @Override public void handle(Event event) { System.out.println("Set night theme."); LifeCycleManager.switchTheme("theme.night"); } }); primStage.setScene(new Scene(root)); }catch (Exception e) { e.printStackTrace(); }