Существует гораздо более простой способ загрузить и установить изображение в виде значка рамки:
frame.setIconImage(
new ImageIcon(getClass().getResource("/resources/icon.gif")).getImage());
И это все :)!Вам даже не нужно использовать блок try-catch, потому что ImageIcon
не выдает никаких объявленных исключений.А благодаря getClass().getResource()
он работает как из файловой системы, так и из jar-файла, в зависимости от того, как вы запускаете ваше приложение.
Если вам нужно проверить, доступно ли изображение, вы можете проверить, возвращен ли URL-адрес getResource()
это null
:
URL url = getClass().getResource("/resources/icon.gif");
if (url == null)
System.out.println( "Could not find image!" );
else
frame.setIconImage(new ImageIcon(url).getImage());