Search in sources :

Example 1 with LafManager

use of com.github.weisj.darklaf.LafManager in project darklaf by weisJ.

the class PreferenceChangeDemo method createComponent.

@Override
public JComponent createComponent() {
    LafManager.addThemePreferenceChangeListener(LafManager::installTheme);
    DemoPanel panel = new DemoPanel(new JToggleButton("Start") {

        {
            addActionListener(e -> {
                setText(isSelected() ? "Stop" : "Start");
                LafManager.enabledPreferenceChangeReporting(isSelected());
            });
        }
    });
    Icon accentColorIcon = new SolidColorIcon() {

        @Override
        public Color getColor() {
            return LafManager.getTheme().getAccentColorRule().getAccentColor();
        }
    };
    Icon selectionColorIcon = new SolidColorIcon() {

        @Override
        public Color getColor() {
            return LafManager.getTheme().getAccentColorRule().getSelectionColor();
        }
    };
    JPanel controlPanel = panel.addControls();
    controlPanel.add(new JLabel("Accent Color", accentColorIcon, JLabel.LEFT));
    controlPanel.add(new JLabel("Selection Color", selectionColorIcon, JLabel.LEFT));
    controlPanel = panel.addControls();
    controlPanel.add(new JTextArea() {

        {
            setMargin(new Insets(5, 5, 5, 5));
            setEditable(false);
            setText("Press start/stop to enable/disable preference monitoring.\n" + "Then do one of the following\n" + " - switch between dark/light theme (Windows/macOS)\n" + " - toggle high contrast mode (Windows/macOS)\n" + " - change accent color (Windows/macOS)\n" + " - change selection color (macOS)\n" + " - change font scaling (Windows)\n" + "The theme should then adjust automatically (if monitoring is started).\n");
        }
    });
    return panel;
}
Also used : java.awt(java.awt) DemoExecutor(com.github.weisj.darklaf.ui.demo.DemoExecutor) BaseComponentDemo(com.github.weisj.darklaf.ui.demo.BaseComponentDemo) SolidColorIcon(com.github.weisj.darklaf.properties.icons.SolidColorIcon) LafManager(com.github.weisj.darklaf.LafManager) WindowAdapter(java.awt.event.WindowAdapter) Theme(com.github.weisj.darklaf.theme.Theme) WindowEvent(java.awt.event.WindowEvent) javax.swing(javax.swing) SolidColorIcon(com.github.weisj.darklaf.properties.icons.SolidColorIcon) LafManager(com.github.weisj.darklaf.LafManager) SolidColorIcon(com.github.weisj.darklaf.properties.icons.SolidColorIcon)

Aggregations

LafManager (com.github.weisj.darklaf.LafManager)1 SolidColorIcon (com.github.weisj.darklaf.properties.icons.SolidColorIcon)1 Theme (com.github.weisj.darklaf.theme.Theme)1 BaseComponentDemo (com.github.weisj.darklaf.ui.demo.BaseComponentDemo)1 DemoExecutor (com.github.weisj.darklaf.ui.demo.DemoExecutor)1 java.awt (java.awt)1 WindowAdapter (java.awt.event.WindowAdapter)1 WindowEvent (java.awt.event.WindowEvent)1 javax.swing (javax.swing)1