diff --git a/src/main/java/org/qortal/gui/Gui.java b/src/main/java/org/qortal/gui/Gui.java index 4944db52..12191349 100644 --- a/src/main/java/org/qortal/gui/Gui.java +++ b/src/main/java/org/qortal/gui/Gui.java @@ -47,12 +47,12 @@ public class Gui { this.splashFrame = SplashFrame.getInstance(); } - protected static BufferedImage loadImage(String resourceName) { + protected static BufferedImage loadImage(String resourceName) throws IOException { try (InputStream in = Gui.class.getResourceAsStream("/images/" + resourceName)) { return ImageIO.read(in); } catch (IllegalArgumentException | IOException | ServiceConfigurationError e) { LOGGER.warn(String.format("Couldn't locate image resource \"images/%s\"", resourceName)); - return null; + throw new IOException(String.format("Couldn't locate image resource \"images/%s\"", resourceName)); } } diff --git a/src/main/java/org/qortal/gui/SplashFrame.java b/src/main/java/org/qortal/gui/SplashFrame.java index c4ea51d0..3fd452fc 100644 --- a/src/main/java/org/qortal/gui/SplashFrame.java +++ b/src/main/java/org/qortal/gui/SplashFrame.java @@ -1,6 +1,7 @@ package org.qortal.gui; import java.awt.*; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.awt.image.BufferedImage; @@ -29,18 +30,23 @@ public class SplashFrame { private JLabel statusLabel; public SplashPanel() { - image = Gui.loadImage(defaultSplash); + try { + image = Gui.loadImage(defaultSplash); + + // Add logo + JLabel imageLabel = new JLabel(new ImageIcon(image)); + imageLabel.setSize(new Dimension(300, 300)); + add(imageLabel); + } + catch (IOException e) { + LOGGER.warn("Unable to load splash panel image"); + } setOpaque(true); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); setBorder(new EmptyBorder(10, 10, 10, 10)); setBackground(Color.BLACK); - // Add logo - JLabel imageLabel = new JLabel(new ImageIcon(image)); - imageLabel.setSize(new Dimension(300, 300)); - add(imageLabel); - // Add spacing add(Box.createRigidArea(new Dimension(0, 16))); @@ -75,15 +81,20 @@ public class SplashFrame { this.splashDialog = new JFrame(); - List icons = new ArrayList<>(); - icons.add(Gui.loadImage("icons/icon16.png")); - icons.add(Gui.loadImage("icons/qortal_ui_tray_synced.png")); - icons.add(Gui.loadImage("icons/qortal_ui_tray_syncing_time-alt.png")); - icons.add(Gui.loadImage("icons/qortal_ui_tray_minting.png")); - icons.add(Gui.loadImage("icons/qortal_ui_tray_syncing.png")); - icons.add(Gui.loadImage("icons/icon64.png")); - icons.add(Gui.loadImage("icons/Qlogo_128.png")); - this.splashDialog.setIconImages(icons); + try { + List icons = new ArrayList<>(); + icons.add(Gui.loadImage("icons/icon16.png")); + icons.add(Gui.loadImage("icons/qortal_ui_tray_synced.png")); + icons.add(Gui.loadImage("icons/qortal_ui_tray_syncing_time-alt.png")); + icons.add(Gui.loadImage("icons/qortal_ui_tray_minting.png")); + icons.add(Gui.loadImage("icons/qortal_ui_tray_syncing.png")); + icons.add(Gui.loadImage("icons/icon64.png")); + icons.add(Gui.loadImage("icons/Qlogo_128.png")); + this.splashDialog.setIconImages(icons); + } + catch (IOException e) { + LOGGER.warn("Unable to load splash frame icons"); + } this.splashPanel = new SplashPanel(); this.splashDialog.getContentPane().add(this.splashPanel); diff --git a/src/main/java/org/qortal/gui/SysTray.java b/src/main/java/org/qortal/gui/SysTray.java index 7a24f825..861c9ab0 100644 --- a/src/main/java/org/qortal/gui/SysTray.java +++ b/src/main/java/org/qortal/gui/SysTray.java @@ -61,7 +61,13 @@ public class SysTray { this.popupMenu = createJPopupMenu(); // Build TrayIcon without AWT PopupMenu (which doesn't support Unicode)... - this.trayIcon = new TrayIcon(Gui.loadImage("icons/qortal_ui_tray_synced.png"), "qortal", null); + try { + this.trayIcon = new TrayIcon(Gui.loadImage("icons/qortal_ui_tray_synced.png"), "qortal", null); + } + catch (IOException e) { + LOGGER.warn("Unable to load system tray icon"); + return; + } // ...and attach mouse listener instead so we can use JPopupMenu (which does support Unicode) this.trayIcon.addMouseListener(new MouseAdapter() { @Override