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;
}
Aggregations