保存用户自选主题

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); MainPrefs.getState().put(KEY_USER_CUR, json);
} }
UIManager.setLookAndFeel(get().get("userTheme"));
MainFrame.getInstance().showMainPane(); MainFrame.getInstance().showMainPane();
MainFrame.getInstance().theme(get().get("userTheme"));
} else { } else {
usernameTextFiled.setRequestFocusEnabled(true); usernameTextFiled.setRequestFocusEnabled(true);

View File

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