保存用户自选主题

This commit is contained in:
wenli 2024-09-08 11:40:32 +08:00
parent 40f0367ed1
commit 365f43fc49
2 changed files with 16 additions and 30 deletions

View File

@ -397,8 +397,8 @@ public class LoginPane extends JPanel {
MainPrefs.getState().put(KEY_USER_CUR, json);
}
UIManager.setLookAndFeel(get().get("userTheme"));
MainFrame.getInstance().showMainPane();
MainFrame.getInstance().theme(get().get("userTheme"));
} else {
usernameTextFiled.setRequestFocusEnabled(true);

View File

@ -437,16 +437,25 @@ public class MainFrame extends JFrame {
JCheckBoxMenuItem lighterMenuItem = new JCheckBoxMenuItem("白色");
group.add(lighterMenuItem);
themePopupMenu.add(lighterMenuItem);
lighterMenuItem.addActionListener(e1 -> theme("白色"));
lighterMenuItem.addActionListener(e1 -> {
theme("白色");
updateUserTheme("白色");
});
JCheckBoxMenuItem darkMenuItem = new JCheckBoxMenuItem("深色");
darkMenuItem.addActionListener(e1 -> theme("深色"));
darkMenuItem.addActionListener(e1 -> {
theme("深色");
updateUserTheme("深色");
});
themePopupMenu.add(darkMenuItem);
group.add(darkMenuItem);
JCheckBoxMenuItem glazzedMenuItem = new JCheckBoxMenuItem("玻璃");
glazzedMenuItem.addActionListener(e1 -> theme("玻璃"));
glazzedMenuItem.addActionListener(e1 -> {
theme("玻璃");
updateUserTheme("玻璃");
});
themePopupMenu.add(glazzedMenuItem);
group.add(glazzedMenuItem);
@ -460,7 +469,7 @@ public class MainFrame extends JFrame {
/**
* 主题
*/
private void theme(String theme) {
public void theme(String theme) {
EventQueue.invokeLater(() -> {
FlatAnimatedLafChange.showSnapshot();
@ -513,37 +522,14 @@ public class MainFrame extends JFrame {
});
updateUserTheme(theme);
}
public void updateUserTheme(String theme) {
String userTheme = LightTheme.class.getName();
switch (theme) {
case "深色": {
userTheme = DarkTheme.class.getName();
break;
}
case "白色": {
userTheme = (LightTheme.class.getName());
break;
}
case "玻璃": {
userTheme = GlazzedTheme.class.getName();
break;
}
default: {
userTheme = LightTheme.class.getName();
break;
}
}
String finalUserTheme = userTheme;
String finalUserTheme = theme;
SwingWorker<String, String> stringSwingWorker = new SwingWorker<String, String>() {
@Override
protected String doInBackground() throws Exception {