diff --git a/jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java index 9be61b539..4659aab39 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java @@ -2,9 +2,11 @@ package jadx.gui.ui; import javax.swing.*; import java.awt.*; +import java.net.URL; import jadx.api.JadxDecompiler; import jadx.gui.utils.NLS; +import jadx.gui.utils.Utils; class AboutDialog extends JDialog { private static final long serialVersionUID = 5763493590584039096L; @@ -16,7 +18,10 @@ class AboutDialog extends JDialog { public final void initUI() { Font font = new Font("Serif", Font.BOLD, 13); - JLabel name = new JLabel("jadx"); + URL logoURL = getClass().getResource("/logos/jadx-logo-48px.png"); + Icon logo = new ImageIcon(logoURL, "jadx logo"); + + JLabel name = new JLabel("jadx", logo, SwingConstants.CENTER); name.setFont(font); name.setAlignmentX(0.5f); @@ -24,10 +29,24 @@ class AboutDialog extends JDialog { desc.setFont(font); desc.setAlignmentX(0.5f); - JLabel version = new JLabel("version: " + JadxDecompiler.getVersion()); + JLabel version = new JLabel("jadx version: " + JadxDecompiler.getVersion()); version.setFont(font); version.setAlignmentX(0.5f); + String javaVm = System.getProperty("java.vm.name"); + String javaVer = System.getProperty("java.vm.version"); + + javaVm = javaVm == null ? "" : javaVm; + + JLabel javaVmLabel = new JLabel("Java VM: " + javaVm); + javaVmLabel.setFont(font); + javaVmLabel.setAlignmentX(0.5f); + + javaVer = javaVer == null ? "" : javaVer; + JLabel javaVerLabel = new JLabel("Java version: " + javaVer); + javaVerLabel.setFont(font); + javaVerLabel.setAlignmentX(0.5f); + JPanel textPane = new JPanel(); textPane.setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 15)); textPane.setLayout(new BoxLayout(textPane, BoxLayout.PAGE_AXIS)); @@ -38,6 +57,9 @@ class AboutDialog extends JDialog { textPane.add(Box.createRigidArea(new Dimension(0, 10))); textPane.add(version); textPane.add(Box.createRigidArea(new Dimension(0, 20))); + textPane.add(javaVmLabel); + textPane.add(javaVerLabel); + textPane.add(Box.createRigidArea(new Dimension(0, 20))); JButton close = new JButton(NLS.str("tabs.close")); close.addActionListener(event -> dispose()); @@ -47,6 +69,8 @@ class AboutDialog extends JDialog { contentPane.add(textPane, BorderLayout.CENTER); contentPane.add(close, BorderLayout.PAGE_END); + Utils.setWindowIcons(this); + setModalityType(ModalityType.APPLICATION_MODAL); setTitle(NLS.str("about_dialog.title")); 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 4885eb93e..4783e984f 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java @@ -82,6 +82,7 @@ public class MainWindow extends JFrame { private static final ImageIcon ICON_PREF = Utils.openIcon("wrench"); private static final ImageIcon ICON_DEOBF = Utils.openIcon("lock_edit"); private static final ImageIcon ICON_LOG = Utils.openIcon("report"); + private static final ImageIcon ICON_JADX = Utils.openIcon("jadx-logo"); private final transient JadxWrapper wrapper; private final transient JadxSettings settings; @@ -116,16 +117,7 @@ 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); + Utils.setWindowIcons(this); loadSettings(); checkForUpdate(); } @@ -462,7 +454,7 @@ public class MainWindow extends JFrame { logAction.putValue(Action.ACCELERATOR_KEY, getKeyStroke(KeyEvent.VK_L, KeyEvent.CTRL_DOWN_MASK | KeyEvent.SHIFT_DOWN_MASK)); - Action aboutAction = new AbstractAction(NLS.str("menu.about")) { + Action aboutAction = new AbstractAction(NLS.str("menu.about"), ICON_JADX) { @Override public void actionPerformed(ActionEvent e) { new AboutDialog().setVisible(true); 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 f6f724273..8ca0bb926 100644 --- a/jadx-gui/src/main/java/jadx/gui/utils/Utils.java +++ b/jadx-gui/src/main/java/jadx/gui/utils/Utils.java @@ -7,6 +7,8 @@ import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.io.InputStream; import java.net.URL; +import java.util.ArrayList; +import java.util.List; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -191,4 +193,13 @@ public class Utils { } return sb.toString().trim(); } + + public static void setWindowIcons(Window window) { + 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")); + window.setIconImages(icons); + } } diff --git a/jadx-gui/src/main/resources/icons-16/jadx-logo.png b/jadx-gui/src/main/resources/icons-16/jadx-logo.png new file mode 100644 index 000000000..a9a2d0856 Binary files /dev/null and b/jadx-gui/src/main/resources/icons-16/jadx-logo.png differ diff --git a/jadx-gui/src/main/resources/logos/jadx-logo.ico b/jadx-gui/src/main/resources/logos/jadx-logo.ico index 1f02bd689..85786cd6b 100644 Binary files a/jadx-gui/src/main/resources/logos/jadx-logo.ico and b/jadx-gui/src/main/resources/logos/jadx-logo.ico differ diff --git a/jadx-gui/src/main/resources/logos/jadx-logo.svg b/jadx-gui/src/main/resources/logos/jadx-logo.svg new file mode 100644 index 000000000..bc0e0b2e8 --- /dev/null +++ b/jadx-gui/src/main/resources/logos/jadx-logo.svg @@ -0,0 +1 @@ +jadxlogoDXJA \ No newline at end of file