diff --git a/jadx-gui/build.gradle b/jadx-gui/build.gradle index 9ddfac028..789ec0244 100644 --- a/jadx-gui/build.gradle +++ b/jadx-gui/build.gradle @@ -56,7 +56,7 @@ launch4j { mainClassName = 'jadx.gui.JadxGUI' copyConfigurable = project.tasks.shadowJar.outputs.files jar = "lib/${project.tasks.shadowJar.archiveName}" -// icon = "${projectDir}/icons/myApp.ico" + icon = "${projectDir}/src/main/resources/logos/jadx-logo.ico" outfile = "jadx-gui-${version}.exe" copyright = 'Skylot' windowTitle = 'jadx' diff --git a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java index 6895e3d05..14be9ca2b 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java @@ -23,7 +23,9 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; import java.io.FileInputStream; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.Timer; import java.util.TimerTask; @@ -114,6 +116,16 @@ public class MainWindow extends JFrame { registerBundledFonts(); initUI(); initMenuAndToolbar(); + setWindowIcons(); + } + + private void setWindowIcons() { + List icons = new ArrayList<>(); + icons.add(Utils.openImage("/logos/jadx-logo-16px.png")); + icons.add(Utils.openImage("/logos/jadx-logo-32px.png")); + icons.add(Utils.openImage("/logos/jadx-logo-48px.png")); + icons.add(Utils.openImage("/logos/jadx-logo.png")); + setIconImages(icons); loadSettings(); checkForUpdate(); } diff --git a/jadx-gui/src/main/java/jadx/gui/utils/Utils.java b/jadx-gui/src/main/java/jadx/gui/utils/Utils.java index 6dd69da75..120aafb0f 100644 --- a/jadx-gui/src/main/java/jadx/gui/utils/Utils.java +++ b/jadx-gui/src/main/java/jadx/gui/utils/Utils.java @@ -48,6 +48,14 @@ public class Utils { return new ImageIcon(resource); } + public static Image openImage(String path) { + URL resource = Utils.class.getResource(path); + if (resource == null) { + throw new JadxRuntimeException("Image not found: " + path); + } + return Toolkit.getDefaultToolkit().createImage(resource); + } + @Nullable public static Font openFontTTF(String name) { String fontPath = "/fonts/" + name + ".ttf"; diff --git a/jadx-gui/src/main/resources/logos/jadx-logo-16px.png b/jadx-gui/src/main/resources/logos/jadx-logo-16px.png new file mode 100644 index 000000000..a9a2d0856 Binary files /dev/null and b/jadx-gui/src/main/resources/logos/jadx-logo-16px.png differ diff --git a/jadx-gui/src/main/resources/logos/jadx-logo-32px.png b/jadx-gui/src/main/resources/logos/jadx-logo-32px.png new file mode 100644 index 000000000..48c5305b0 Binary files /dev/null and b/jadx-gui/src/main/resources/logos/jadx-logo-32px.png differ diff --git a/jadx-gui/src/main/resources/logos/jadx-logo-48px.png b/jadx-gui/src/main/resources/logos/jadx-logo-48px.png new file mode 100644 index 000000000..d7a7ed044 Binary files /dev/null and b/jadx-gui/src/main/resources/logos/jadx-logo-48px.png differ diff --git a/jadx-gui/src/main/resources/logos/jadx-logo.ico b/jadx-gui/src/main/resources/logos/jadx-logo.ico new file mode 100644 index 000000000..1f02bd689 Binary files /dev/null and b/jadx-gui/src/main/resources/logos/jadx-logo.ico differ diff --git a/jadx-gui/src/main/resources/logos/jadx-logo.png b/jadx-gui/src/main/resources/logos/jadx-logo.png new file mode 100644 index 000000000..7010d2b3a Binary files /dev/null and b/jadx-gui/src/main/resources/logos/jadx-logo.png differ