From 4ffa8e3aa7c65bfb268d29b865b2eac45da7d9bb Mon Sep 17 00:00:00 2001 From: p6xlcrq3f <2020134472@qq.com> Date: Sun, 13 Apr 2025 08:34:16 +0800 Subject: [PATCH] Delete 'src/ThemeSwitcher.java' --- src/ThemeSwitcher.java | 172 ----------------------------------------- 1 file changed, 172 deletions(-) delete mode 100644 src/ThemeSwitcher.java diff --git a/src/ThemeSwitcher.java b/src/ThemeSwitcher.java deleted file mode 100644 index 0edb1a2..0000000 --- a/src/ThemeSwitcher.java +++ /dev/null @@ -1,172 +0,0 @@ -package cn.edu.caztc.sokobangame; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.HashMap; -import java.util.Map; - -public class ThemeSwitcher { - // 当前主题索引 - private static int currentTheme = 1; - // 主题图片缓存 - private static Map themeIcons = new HashMap<>(); - - // 主题名称 - private static final String[] THEME_NAMES = { - "默认主题", - "chiikawa主题", - "MINECRAFT主题", - "粉色气泡主题" - }; - - // 初始化主题图片 - static { - loadThemeIcons(); - } - - // 加载所有主题的图片 - private static void loadThemeIcons() { - for (int theme = 1; theme <= THEME_NAMES.length; theme++) { - ImageIcon[] icons = new ImageIcon[7]; - String suffix = theme == 1 ? "" : "(" + (theme-1) + ")"; - - // 修改图片路径为images文件夹 - icons[0] = new ImageIcon("images/墙" + suffix + ".png"); - icons[1] = new ImageIcon("images/地板" + suffix + ".png"); - icons[2] = new ImageIcon("images/空箱子" + suffix + ".png"); - icons[3] = new ImageIcon("images/箱子" + suffix + ".png"); - icons[4] = new ImageIcon("images/箱子点" + suffix + ".png"); - icons[5] = new ImageIcon("images/player" + suffix + ".png"); - icons[6] = new ImageIcon("images/player2" + suffix + ".png"); - - themeIcons.put(theme, icons); - } - } - - // 创建切换主题菜单项 - public static JMenuItem createThemeMenuItem() { - JMenuItem themeItem = new JMenuItem("切换主题"); - themeItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - showThemeDialog(); - } - }); - return themeItem; - } - - // 显示主题选择对话框 - private static void showThemeDialog() { - JDialog dialog = new JDialog(); - dialog.setTitle("切换主题"); - dialog.setSize(600, 700); - dialog.setLayout(new BorderLayout()); - dialog.setLocationRelativeTo(null); - - JPanel mainPanel = new JPanel(new GridLayout(THEME_NAMES.length, 1, 10, 10)); - mainPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); - - for (int i = 0; i < THEME_NAMES.length; i++) { - JPanel themePanel = createThemePanel(i + 1, THEME_NAMES[i]); - mainPanel.add(themePanel); - } - - JScrollPane scrollPane = new JScrollPane(mainPanel); - dialog.add(scrollPane, BorderLayout.CENTER); - - JButton closeButton = new JButton("关闭"); - closeButton.addActionListener(e -> dialog.dispose()); - JPanel buttonPanel = new JPanel(); - buttonPanel.add(closeButton); - dialog.add(buttonPanel, BorderLayout.SOUTH); - - dialog.setVisible(true); - } - - // 创建单个主题展示面板 - private static JPanel createThemePanel(int themeIndex, String themeName) { - JPanel panel = new JPanel(new BorderLayout()); - panel.setBorder(BorderFactory.createTitledBorder(themeName)); - - JLabel titleLabel = new JLabel(themeName, JLabel.CENTER); - titleLabel.setFont(new Font("宋体", Font.BOLD, 16)); - panel.add(titleLabel, BorderLayout.NORTH); - - JPanel iconsPanel = new JPanel(new GridLayout(1, 7, 5, 5)); - ImageIcon[] icons = themeIcons.get(themeIndex); - - // 添加素材图片 - String[] iconNames = {"墙", "地板", "空箱子", "箱子", "箱子点", "玩家一", "玩家二"}; - for (int i = 0; i < 7; i++) { - JPanel iconPanel = new JPanel(new BorderLayout()); - iconPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); - - // 缩放图片以适应显示 - ImageIcon scaledIcon = scaleIcon(icons[i], 50, 50); - JLabel iconLabel = new JLabel(scaledIcon); - iconLabel.setHorizontalAlignment(JLabel.CENTER); - iconPanel.add(iconLabel, BorderLayout.CENTER); - - JLabel nameLabel = new JLabel(iconNames[i], JLabel.CENTER); - iconPanel.add(nameLabel, BorderLayout.SOUTH); - - iconsPanel.add(iconPanel); - } - - JButton selectButton = new JButton("选择此主题"); - selectButton.addActionListener(e -> { - setCurrentTheme(themeIndex); - JOptionPane.showMessageDialog(null, "已切换至" + themeName, "提示", JOptionPane.INFORMATION_MESSAGE); - }); - - JPanel centerPanel = new JPanel(new BorderLayout()); - centerPanel.add(iconsPanel, BorderLayout.CENTER); - centerPanel.add(selectButton, BorderLayout.SOUTH); - panel.add(centerPanel, BorderLayout.CENTER); - - return panel; - } - - // 缩放图标 - private static ImageIcon scaleIcon(ImageIcon icon, int width, int height) { - if (icon == null) return null; - Image image = icon.getImage(); - Image scaledImage = image.getScaledInstance(width, height, Image.SCALE_SMOOTH); - return new ImageIcon(scaledImage); - } - - // 设置当前主题 - public static void setCurrentTheme(int theme) { - currentTheme = theme; - updateGameTheme(); - } - - // 更新游戏主题 - private static void updateGameTheme() { - ImageIcon[] currentIcons = themeIcons.get(currentTheme); - - // 更新游戏中的图标 - if (MainGame.getInstance() != null) { - MainGame.getInstance().updateTheme(currentIcons); - } - if (DualGame.getInstance() != null) { - DualGame.getInstance().updateTheme(currentIcons); - } - } - - // 获取当前主题的图标 - public static ImageIcon getThemeIcon(int index) { - ImageIcon[] icons = themeIcons.get(currentTheme); - if (icons != null && index >= 0 && index < icons.length) { - return icons[index]; - } - return null; - } - - // 添加方法获取当前主题的所有图标 - public static ImageIcon[] getCurrentThemeIcons() { - return themeIcons.get(currentTheme); - } -} \ No newline at end of file