From cf5957ffd108c4b641f5c453b9bf4fefc9916e16 Mon Sep 17 00:00:00 2001 From: Glavo Date: Fri, 12 Sep 2025 18:47:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=20AwtUtils=20(#4460)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jackhuang/hmcl/EntryPoint.java | 11 +++++++--- .../java/org/jackhuang/hmcl/ui/AwtUtils.java | 20 ------------------- 2 files changed, 8 insertions(+), 23 deletions(-) delete mode 100644 HMCL/src/main/java/org/jackhuang/hmcl/ui/AwtUtils.java diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/EntryPoint.java b/HMCL/src/main/java/org/jackhuang/hmcl/EntryPoint.java index b1eec3288..396c880f7 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/EntryPoint.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/EntryPoint.java @@ -18,7 +18,6 @@ package org.jackhuang.hmcl; import org.jackhuang.hmcl.util.FileSaver; -import org.jackhuang.hmcl.ui.AwtUtils; import org.jackhuang.hmcl.util.SelfDependencyPatcher; import org.jackhuang.hmcl.util.SwingUtils; import org.jackhuang.hmcl.java.JavaRuntime; @@ -110,8 +109,14 @@ public final class EntryPoint { } private static void initIcon() { - java.awt.Image image = java.awt.Toolkit.getDefaultToolkit().getImage(EntryPoint.class.getResource("/assets/img/icon-mac.png")); - AwtUtils.setAppleIcon(image); + try { + if (java.awt.Taskbar.isTaskbarSupported()) { + var image = java.awt.Toolkit.getDefaultToolkit().getImage(EntryPoint.class.getResource("/assets/img/icon-mac.png")); + java.awt.Taskbar.getTaskbar().setIconImage(image); + } + } catch (Throwable e) { + LOG.warning("Failed to set application icon", e); + } } private static void checkDirectoryPath() { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AwtUtils.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AwtUtils.java deleted file mode 100644 index 1efb3e929..000000000 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AwtUtils.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.jackhuang.hmcl.ui; - -import java.awt.*; -import java.lang.reflect.Method; - -public final class AwtUtils { - private AwtUtils() { - } - - public static void setAppleIcon(Image image) { - try { - Class taskbarClass = Class.forName("java.awt.Taskbar"); - Method getTaskBarMethod = taskbarClass.getDeclaredMethod("getTaskbar"); - Object taskBar = getTaskBarMethod.invoke(null); - Method setIconImageMethod = taskbarClass.getDeclaredMethod("setIconImage", Image.class); - setIconImageMethod.invoke(taskBar, image); - } catch (Throwable ignore) { - } - } -}